2009-08-18 104 views
7

如果我去this页面,然后删除从我的浏览器的地址栏中的网址,然后输入如何防止从浏览器的地址栏执行JavaScript?

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

整体的一部分刷新。如何防止从地址栏执行javascript时刷新页面?

此外,是否有任何其他技术来操纵一个页面而不必访问像上述方法中的页源?

回答

10

不,你不能操纵DOM停止用户。

你并不需要担心的人操纵来自客户端的DOM。这些变化只会影响当地的经验。他们实际上并未影响您的网站以供其他用户使用。

你可以很容易地操作使用类似Firebug,IEDeveloperToolbar,或Greasemonkey的(Javascript引擎)工具DOM。

+0

是的,我知道,我只是对知识的渴求。任何其他techinque可以做到这一点本地体验? – cometta 2009-08-18 14:21:16

+0

@David,更新了我的答案。看第一行;) – Sampson 2009-08-18 14:21:54

+0

=)我也知道可以使用像你提到的工具。 =)如果没有工具使用裸浏览器会怎么样。可能? iframe? – cometta 2009-08-18 14:23:31

0

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

对于Q2:我相信Firebug将让你在任何网页上的JavaScript执行...

0

问题1:正如早些时候的回应者所说的那样,我没有办法做到。

问题2:看看bookmarklets,一些非常酷的事情可以通过对来自不同网站的网页上运行自己的JavaScript来实现。人们已经写书签为突出显示在页面上的东西,把预警指标旁边将在新窗口中打开,或去APDF链接等

7
  1. 当你做javascript:stuff();stuff()产生一个返回值时,整个页面被它取代。您可以防止通过使用javascript:void(stuff());javascript:stuff();void(0);
  2. 别人已经回答了:)
+0

'的javascript:无效(东东());'是关键问题一 – gnarf 2009-08-18 14:29:46

+0

Havenard,你在这里?!?!有一句话,在使用void时不需要使用圆括号,它是一个运算符,所以javacript:void doStuff();也是对的。 – Cleiton 2009-08-18 14:38:13

相关问题