[英]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。
document.getElementsByTagName(tagname)
返回的集合。 .getAttribute
和.removeAttribte
檢查黑名單和清理屬性(獎勵:您將獲得標准化數據,無需擔心人們試圖通過時髦的逃避來偷偷摸摸!)。 src
,因此您可能希望使用此屬性循環標記名稱"*"
,以防止面向未來/偏執。 或者只是遍歷所有元素的所有屬性。 這將是非常緩慢但仍然不能保證有人不會使用難以區分純文本的URL(如IP或沒有協議的域名)來避免它,所以我建議不要進行全掃描。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.