gpt4 book ai didi

javascript - 客户端 ajaxComplete 调用生成无限 iframe

转载 作者:行者123 更新时间:2023-11-30 06:42:19 25 4
gpt4 key购买 nike

好的,这是我的问题。我正在编写 Greasemonkey 脚本以在 AJAX 化网站上插入两个 iframe,但 ajaxComplete 陷入循环并生成过多的 iframe(有时是一个,有时是五个,等等),gener.

我已经完成研究,[我认为]我的问题是我没有正确地将调用绑定(bind)到文档,但我不确定这一点。我不确定你会如何做与我已经有的不同。如果你们能指出我正确的方向,我将不胜感激。这是有问题的代码:

function OnLoadWidgets() {
var tempSC = document.createElement("div");
tempSC.id = "SCWidget";
tempSC.innerHTML = "..."
document.getElementById("content-right").appendChild(tempSC);
var tempMC = document.createElement("div");
tempMC.id = "MCWidget";
tempMC.innerHTML = "..."
document.getElementById("content-right").appendChild(tempMC);

}

unsafeWindow.jQuery(document).ajaxComplete(function()
{
var existingSCPlayer = document.getElementById("SCWidget");
if(typeof(existingPlayer) == "undefined")
{
OnLoadWidgets();
}
});

您可以在此处查看其余代码: http://userscripts.org/scripts/show/127312

也想借此机会感谢大家的辛勤工作。怎么感谢都不为过,真的。堆栈==救生员

最佳答案

(1) 目标站点,hypem.com ,使用它自己的 iframe,您的 Greasemonkey 脚本也会在这些 iframe 上触发。

通过添加来防止这种情况:

if (window.top != window.self)  //-- Don't run on frames or iframes.
return;

靠近脚本的顶部。


(2) 代码中有一个变量名错字。 existingSCPlayerexistingPlayer


(3) 细化重复检查以使其更具包容性。使用此代码:

unsafeWindow.jQuery (document).ajaxComplete ( function () {
var existingSCPlayer = document.getElementById ("SCWidget");
var existingMCPlayer = document.getElementById ("MCWidget");
if ( ! existingSCPlayer && ! existingMCPlayer) {
OnLoadWidgets();
}
} );

关于javascript - 客户端 ajaxComplete 调用生成无限 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10135046/

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