2009-08-18 97 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

相關問題