2009-10-15 72 views
4

我有一個網頁的部分控制,我可以在各個地方輸入代碼片段,但我無法刪除任何先前存在的代碼。以編程方式刪除<腳本src =「/ unwanted.js」.. />參考

有通過頁面

<script src="/unwanted.js" type="text/javascript"></script> 

腳本參考中途,但我不希望腳本加載。我無法訪問unwanted.js文件。無論如何,我可以使用JavaScript執行此引用上面導致unwanted.js文件不加載?

編輯:要回答的意見,詢問什麼,以及爲什麼:

我中途設立一個Stack Exchange站點和大規模殺傷性武器* js文件加載了網頁。 SE將允許你在頁面的各個部分插入HTML - 所以你可以擁有自定義的頁眉和頁腳等。我想用我自己的版本來覆蓋標準的WMD代碼。 我可以解決這個問題,只需在原始WMD腳本加載後加載javascript,並用我自己的函數替換函數即可 - 但是如果沒有這樣大量的JS加載,這將會很不錯。

* WMD =在此處使用的標記下拉編輯器,以及SE站點上。

+3

您描述的場景 - 您擁有的訪問 - 讓我感到興奮。 – 2009-10-15 23:55:09

+0

也許你最喜歡的瀏覽器插件?假設你可以在客戶端處理這個問題。 – jldupont 2009-10-16 00:04:39

+0

聽起來像你想讓GeoCities不把廣告放在你的網頁上。做到這一點的最佳方式是支付託管費用。 :P – BoltBait 2009-10-16 00:28:55

回答

2

總之,你不能。即使存在黑客攻擊,它將嚴重依賴於瀏覽器解析HTML並加載腳本的方式,因此不會與所有瀏覽器兼容。

3

請告訴我們你可以做什麼,不能做什麼,(最好;這聽起來很迷人)爲什麼。

如果可以,請嘗試在腳本包含之前插入<!--,之後再將-->註釋掉。

或者,查看腳本文件,看看是否有任何方法可以打破它或使其效果無效。 (這完全取決於腳本本身;如果您需要更具體的建議,請發佈更多詳細信息,或者最好是腳本本身。

+0

不幸的是有必要的標記也會被註釋掉。 – 2009-10-16 01:45:55

0

您可以在其上面開始HTML註釋並在其下一個塊下面結束它嗎?

是什麼unwanted.js的內容看喜歡

+0

無法做到 - 請參閱對SLaks答案的評論。 – 2009-10-16 01:47:13

+0

因此,在您控制的塊中重複必要的標記。 – 2009-10-16 12:51:54

+0

是的。在服務器上動態創建必要的標記ID,所以這將是相當困難的,但我想我可以解析出dom的各個部分並重新創建它們。 – 2009-10-17 11:59:38

0

可以從DOM刪除腳本它是通過使用簡單的東西,如調用後:

s = document.getElementById ("my_script"); 
s.parentNode.removeChild(s); 

這將停止所有功能劇本,但不會把我不在用戶的緩存中。然而就像你想要它不能使用。

+0

這不會阻止腳本執行,這可能是(他想要的)。 – SLaks 2009-10-16 00:07:05

+0

正確,但功能無法訪問。我想這可能是他真正想要的一個誤解。該腳本加載或根本不允許它的功能。我能想到的唯一一件事情就是在這個問題上有意義的是,他們得到一個txteditor來插入某些區域,並且他只會在腳本被調用的地方上下。你的猜測和我的一樣好。 – Dreamcube 2009-10-16 00:16:51

0

基本上你不能在你渲染它之前訪問頁面內容。 如果您可以在將HTML發送給瀏覽器之前操作HTML,則可以編寫一個匹配所需代碼段的正則表達式,並將其刪除。