gpt4 book ai didi

javascript - jQuery 从所有 iframe 中删除元素

转载 作者:行者123 更新时间:2023-11-28 07:54:03 26 4
gpt4 key购买 nike

我有一个页面,其中包含 4 个 iframe。我想使用 jQuery(或纯 JavaScript)来循环所有这些 iframe(我不知道它们的 ID)和主框架,并删除具有指定类名的元素。我将调用此函数从 Chrome 扩展程序中删除这些元素。

我该怎么做?感谢您的回答。

最佳答案

使用这些函数,并将 '.class-name' 替换为您的类名(您可以使用任何 jQuery 选择器)。

var getIFrameDocument = function(iframe) {
var doc;
try {
if ((typeof InstallTrigger !== 'undefined') && (iframe.contentDocument)) { // Firefox, Opera
doc = iframe.contentDocument;
} else if (iframe.contentWindow) { // Internet Explorer
doc = iframe.contentWindow.document;
} else if (iframe.document) { // Others?
doc = iframe.document;
}
} catch(e) {
}

return doc;
};

var findElementRecursively = function(selector, doc) {
try { /* Helps prevent errors like "Permission denied to access property 'jquery'" */
var element = jQuery(selector, doc);
} catch (e) {
return null;
}

if (element.length !== 0) {
return element;
}

try {
if (doc && doc.location === 'about:blank') {
return null;
}
} catch (e) {
}

try { /* Helps prevent errors like "Permission denied to access property 'jquery'" */
var iframes = jQuery("iframe", doc);
} catch (e) {
return null;
}

var result = [];
for (var i = 0; i < iframes.length; i++) {
var iframeDoc = getIFrameDocument(iframes[i]);

if (!(typeof(iframeDoc) === 'undefined')) {
element = findElementRecursively(selector, iframeDoc);
if (!(element === null)) {
for (var j = 0; j < element.length; j++) {
result.push(element[j]);
}
}
}
}

if (result.length > 0) {
return jQuery(result);
} else {
return null;
}
};

var element = findElementRecursively('.class-name', document);
if ((!(element === null)) && (element.length > 0)) {
// element.remove(); // I'm not sure if this works.
element.each(function() {
jQuery(this).remove();
});
}

关于javascript - jQuery 从所有 iframe 中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com