簡體   English   中英

使用javascript刪除HTML中的遠程內容鏈接

[英]Remove remote content links in HTML using javascript

我必須掃描HTML以獲取遠程內容(Iframe標簽,Img標簽,腳本標簽等)並根據某些黑名單刪除其中存在的鏈接。 我能夠刪除其src指向黑名單URL的iframe,img腳本標簽。

var mySpan = document.createElement(\"span\");
 mySpan.innerHTML = \"\";
 var block = p[key];
 var re = new RegExp(block);
 a = document.getElementsByTagName('iframe');
 for(i=0;i<a.length;i++)
 {
    var str = a.item(i).src;
    if(str.match(re))
     {

          a[i].parentNode.replaceChild(mySpan, a[i]);
        // + "a.item(i).src = '';
    }
 }

類似的腳本和img標簽。 但是可以有更多這樣的標簽。 我是否可以使用通用解決方案來遍歷HTML中的所有標記並查找/替換列入黑名單的鏈接我是Javascript的新手,因此其基礎知識有點弱。 這個解決方案能適用於我的情況嗎? 我不想使用JQuery等庫,因為我在Android上這樣做。

獲取文檔document.getElementsByTagName('*')中的所有元素

一旦你這樣做,使用你發現適合檢查每個元素的代碼。

這將確保您已經檢查了所有內容,如果您使用jQuery我可以使思考更簡單。

但是對於成為純JavaScripter非常尊重!

不要在HTML上使用任何正則表達式 - 使用DOM。

  1. 查看HTML標准以獲取可包含外部鏈接的標記上的屬性列表。
  2. 循環遍歷從document.getElementsByTagName(tagname)返回的集合。
  3. 使用.getAttribute.removeAttribte檢查黑名單和清理屬性(獎勵:您將獲得標准化數據,無需擔心人們試圖通過時髦的逃避來偷偷摸摸!)。
  4. 其中許多屬性將被稱為src ,因此您可能希望使用此屬性循環標記名稱"*" ,以防止面向未來/偏執。 或者只是遍歷所有元素的所有屬性。 這將是非常緩慢但仍然不能保證有人不會使用難以區分純文本的URL(如IP或沒有協議的域名)來避免它,所以我建議不要進行全掃描。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM