如何显示在浏览器状态栏文字?(How to display text in the browser

2019-07-18 12:13发布

我们怎样才能改变使用JavaScript(或jQuery的)浏览器状态栏中显示的文本?

Answer 1:

jQuery是没有必要做到这一点:

<script>
function writetostatus(input){
    window.status=input
    return true
}
</script>

然而,大多数新的浏览器阻止您设定从JavaScript状态栏中的文本。



Answer 2:

这是可以做到 。 谷歌搜索是做什么的,可当你将鼠标悬停在谷歌的链接中可以看出,状态栏显示的基本部位:

然而,当你点击它,它带给你的位置和用户代理相关的URL看起来像https://www.google.com.sg/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC8QFjAAahUKEwi4lP-Z4_rIAhVLk5QKHXRLAe8&url=https%3A%2F%2Fwww.example.com%2F&usg=AFQjCNFEbIRqDC65KFpmuak0aXKmnzjKVQ&bvm=bv.106923889,d.dGo 。 该网址确实谷歌跟踪和诸如此类的东西重定向你之前https://www.example.com 。 您可以轻松地用“测试此使用网络督察保存日志 ”。

他们使用一个哈克技巧 ,但它工作在所有浏览器

关键是要认识到,我们可以在状态栏设置为几乎只用HTLM什么事, a href (不CSS和JavaScript需要)。 我们需要的是欺骗浏览器的解析器误以为href值是一个有效的URL,它会显示出来。

试试运行这段代码:

<a href="http://.# this is p͕͓͔͕͓͔͕͓͔͕͓͔͕͓͔͕͓͔͕͓͔͕͓͔͕͓͔͕͓͔͕͓͔̐̑̓̐̑̓̐̑̓̐̑̓̐̑̓̐̑̓̐̑̓̐̑̓̐̑̓̐̑̓̐̑̓̐͜͜͜͜͜͜͜͜͜͜͜͜‌​̴̵̶͕͓͔͕͓͔͕͓͔͕͓͔̖͕͓̖̱̲̳̖̖̖̖̖̖̖͕̑̓̐̑̓̐̑̓̐̑̓̑̒̓̔̐̒̓̔̒̓̔̒̓̔̒̓̔̒̓̔̒̓̔̒̓̔̒̓̔̒̓̔̐̕̚͜͜͜͜͜‌​͓͔̖͕͓͔̖͕͓͔̖͕͓͔̖͕͓͔̖͕͓͔̖̑̓̑̒̓̔̐̑̓̑̒̓̔̐̑̓̑̒̓̔̐̑̓̑̒̓̔̐̑̓̑̒̓̔̐̑̓̑̒̓̔̕̚̕̚̕̚̕̚̕̚̕̚͜͜͜͜͜‌​͕͓͔̖͕͓͔̖̐̑̓̑̒̓̔̐̑̓̓̓̓̓̓̓̑̒̓̔̕̚̕̚͜͜owerful because ━Σ(゚Д゚|||)━ symbols !@)(*#&$^%</even htlm> or lorem ipsum in all scripts Лорем ипсум Lorem存有 ငါ့ရဲ့ဇာတ်မြင့် घरՏուն Дома ലോറെൻ  ഇപ്സം درமுகப்புЛорем ипсумలోלורם איפסוםరెం ఇప్సమ్ მთავარი હોમ לורם איפסוםלורם איפסום Forsíða Loremのイプサム ಮುಖಪುಟ ទំព័រដើម 가 lorem ipsum의 ຫນ້າທໍາອິດ Տուն আর্কাইভ">Hover this link (do not click) and observe the browser's status bar.</a>

Chrome的输出(点击图片到最大化):(v46.0.2490.80米)

FireFox的输出:(v42.0)

IE浏览器的输出:(v11.0.9600.17905更新版本11.0.21(KB3065822))

Opera的输出:(v33.0.1990.58稳定)

Seamonkey的输出:(v2.38)

前卫的输出:(V终极2015年建立28)

  • IE 11的发动机:

  • IE兼容的引擎:

  • Chrome浏览器引擎:

  • 火狐引擎:

火炬的输出:(v42.0.0.10546)

百度的输出:(v43.19.1000.119)

Maxthon的输出:(v4.4.8.1000)


此外,这是没有必要使用# (该片段标识符 )。 浏览器会考虑像文本http://some.message.here./and_more_message_here为有效网址了。 怪异的字符串可能取决于浏览器被认为是有效的:

  1. <a href="http://abcd/test_symbols_!#$%^&*()[]{};:'&quot;.><,//=+``~">

    (浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE11,先锋IE COMPAT,先锋铬,先锋火狐)。

    (名称列与预期输出的浏览器,名字删除线(“ 例如 ‘),对于没有状态栏输出浏览器,和名称有下划线(’例如”)与意外输出/行为的浏览器。与相同版本的浏览器测试那些上面列出的)。

  2. <a href="http://abcd/test some spaces">

    (浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE 11,先锋IE COMPAT,先锋铬,先锋火狐)。

  3. <a href="http://test some . spaces in domain part/a_b_c_d_e">

    (浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE 11,先锋IE COMPAT,先锋铬, 先锋火狐

  4. <a href="http://test some . spaces in domain part without slash">

    (浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE 11,先锋IE COMPAT,先锋铬, 先锋火狐

  5. <a href="http://test_without_slash_and_dots">

    (浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE11,先锋IE COMPAT,先锋铬,先锋火狐)

  6. <a href="http://abc:port_with_letters_test">

    浏览器 ,Firefox,IE,SM, 火炬百度傲游前卫IE11,先锋IE COMPAT, 先锋铬先锋火狐

  7. <a href="http://http://double.http.test">

    (浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE11,先锋IE COMPAT,先锋铬,先锋火狐)

  8. <a href="http://test @ with spaces">

    (浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE 11,先锋IE COMPAT,先锋铬, 先锋火狐

  9. <a href="http://test:password@ with spaces/">

    (浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE 11,先锋IE COMPAT,先锋铬, 先锋火狐

  10. <a href="http:// test : password @with.spaces/">

    (浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE 11,先锋IE COMPAT,先锋铬,先锋火狐)

  11. <a href="http://test@double@abcd">

    (浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE 11,先锋IE COMPAT,先锋铬,先锋火狐)

  12. 重复所有的测试串以上,与http://换成https://ftp://about://chrome://file://foobar:// ,等。

我们可以看到,如果浏览器不考虑该字符串是一个有效的URL,它会通过正常不显示状态栏会失败,所以没有害苦了。 (除非它看起来像有一些错误持续了先锋IE COMPAT与测试字符串"http://abc:port_with_letters_test" 。)


获取浏览器状态栏来显示我们所期望的字符串仅仅是第一步。 第二步是从当用户点击该链接加载页面停止浏览器。

这可以很容易地使用做return false

<a onclick="return false" href="http://some.message.here./and_more_message_here">this link will not load</a>

要么:

 <a onclick="return f()" href="http://some.message.here./and_more_message_here">this link will not load</a> <script> function f() { return false; } </script> 

上述两个片段进行测试,以在Chrome,火狐,IE,SM,火炬,百度,傲游,前卫IE11,前卫IE COMPAT,前卫的Chrome,Firefox的先锋工作。


最后一步是使用window.locationwindow.open模仿的行为a href 。 它可以在线完成:( 在线测试 )

<!doctype html>
<a onclick="location='http://example.org'; return false" href="https://some.message.here./and_more_message_here">same tab</a>
<br><a onclick="window.open('http://example.org'); return false" href="https://some.message.here./and_more_message_here">new tab</a>


或者使用return func() 在线测试 )

<!doctype html>
<a onclick="return f1()" href="http://some.message.here./and_more_message_here">same tab 2</a>
<br><a onclick="return f2()" href="http://some.message.here./and_more_message_here">new tab 2</a>
<script>
  function f1() {
    location = 'http://example.org';
    return false;
  }

  function f2() {
    open('http://example.org');
    return false;
  }
</script>

或内嵌setTimeout ( 在线测试 )

<!doctype html>
<a onclick="setTimeout(function(){location='http://example.org';},1); return false" href="https://some.message.here./and_more_message_here">same tab 3</a>
<br><a onclick="setTimeout(function(){window.open('http://example.org');},1); return false" href="http://some.message.here./and_more_message_here">new tab 3 (doesn't work on Avant IE11 and Avant IE Compat if this link is HTTP; works if it is HTTPS or FTP)</a> 


或者使用return func()setTimeout ( 在线测试 )

<!doctype html>
<a onclick="return f1()" href="http://some.message.here./and_more_message_here">same tab 4</a>
<br><a onclick="return f2()" href="http://some.message.here./and_more_message_here">new tab 4 (doesn't work on Avant IE11 and Avant IE Compat if this link is HTTP; works if it is HTTPS or FTP)</a> <!-- hadn't tested this with sourcepage=HTTP. only tested with sourcepage=HTTPS and sourcepage=localwebpage -->
<script>
  function f1() {
    setTimeout(function() {
      location = 'http://example.org';
    }, 1);
    return false;
  }

  function f2() {
    setTimeout(function() {
      open('http://example.org');
    }, 1);
    return false;
  }
</script>

上述两个片段也被测试到浏览器,Firefox,IE,SM,火炬,百度,傲游,前卫IE11工作(与在代码表示警告),先锋IE COMPAT(用代码表示警告),先锋铬,先锋Firefox浏览器。



Answer 3:

向谁可能涉及具体的一个简单的纸条给IE:

直到IE6和包括它 ,你可以这样做:

window.status = "Hello, I'm a custom status bar note.";

但是IE6后(测试IE7 / 8),你做它以同样的方式,但你也需要通过开启该功能,以适应浏览器的安全选项 :工具- Internet选项-安全-自定义级别:



Answer 4:

首先,它的appearence不是整个浏览器的统一;其次,该功能已被禁用了很长时间在默认情况下大多数浏览器出于安全原因。

无论如何,这样做的JavaScript是一种简单的window.status = "my text"



Answer 5:

使用

window.status = "whatever you want"



文章来源: How to display text in the browser status bar?