如何防止从浏览器的地址栏执行javascript?

时间:2009-08-18 14:18:20

标签: javascript

如果我转到this页面,然后从浏览器的地址栏中删除该网址,然后输入

javascript:document.getElementById('rsidebar').value='dsf';

整个部分刷新。如何在从地址栏执行javascript时阻止页面刷新?

此外,是否有其他技术可以操作页面而无法像上述方法那样访问页面源?

4 个答案:

答案 0 :(得分:10)

不,你无法阻止用户操纵DOM。

您无需担心人们从客户端操纵DOM。这些变化只会影响他们的本地体验。它们实际上并不会影响其他用户的网站。

您可以使用Firebug,IEDeveloperToolbar或Greasemonkey(Javascript引擎)等工具轻松操作DOM。

答案 1 :(得分:7)

  1. javascript:stuff();stuff()生成返回值时,整个页面将被替换。您可以使用javascript:void(stuff());javascript:stuff();void(0);
  2. 来阻止这种情况
  3. 其他人已经回答:)

答案 2 :(得分:0)

对于Q1:我认为这是不可能的,因为浏览器在其自己的“沙盒”中运行每个网站

对于Q2:我相信Firebug会让您在任何网页上执行javascript ...

答案 3 :(得分:0)

问题1:正如早先的回应者所说,你无能为力,我不认为。

问题2:查看bookmarklets,通过针对来自各个网站的网页运行您自己的JavaScript,可以完成一些非常酷的事情。人们已经编写了书签来突出页面上的内容,在新窗口中打开的链接旁边放置警告指示器,或者转到aPDF等。