gpt4 book ai didi

javascript - 如果 $(window).load(function(){}); 该怎么办?太早了

转载 作者:行者123 更新时间:2023-12-02 17:59:02 24 4
gpt4 key购买 nike

我需要在每一位下载完成后触发一段代码。如果在加载所有内容后注入(inject)该脚本,则该脚本可以工作,但如何自动触发该脚本?

我的脚本是:

var divId = "jwplayer-0_wrapper";
if ($('#' + divId).length == 1) {
myReg = /https?:\/\/www\.youtube\.com\/watch\?v=[^"]+/;
var plainText = $('#' + divId).parent().children('script').text();
var url = plainText.match(myReg);
if (url !== null) {
window.location = url;
};
};

它用于跳过某些决定使用我发现严重错误的 JW 播放器的网站。因此,它会查找带有 JW 播放器指示的 div,如果有,它会找到原始 YouTube 视频的链接并直接转到那里。

它是由名为 Javascript Injector 的 Google Chrome 插件触发的,我在访问的每个页面上应用该脚本。该插件在 www.ayoye.co 等网站上运行良好。和 www.veuxturire.com 。但在其他使用相同路径的网站上,脚本似乎触发得太早了。例如有www.mondedestars.comwww.lesautos.ca太早触发它。

如果我在页面真正加载完成后使用 Add on 的“立即注入(inject)”功能,那么它会按预期将我重定向到 YouTube 页面。我不明白为什么它在某些地方有效,而在其他地方不起作用。

我不想理解这里的每一个网站,我更愿意在页面加载完 php、ajax、script、flash、html 和 CSS 中的所有内容后动态触发它。

我试图查看 JWplayer API,但由于它对我来说非常不清楚,事实上它部分在 flash 中,如果有一种方法可以在之后触发它,或者可能只是触发它,那会更简单当我将鼠标悬停在主体上之后,因为每个站点都有一个主体。它不能特定于一页。

最佳答案

使用类似的东西

var timer;

function injectYouTube() {
// DO YOUR STUFF HERE
// ONCE DONE CALL clearInterval(timer);
clearInterval(timer);
}

timer = setInterval(injectYouTube, 2000);

我并不是说这将在所有内容加载后调用,而是您可以确保您的代码在您想要的时候执行。

关于javascript - 如果 $(window).load(function(){}); 该怎么办?太早了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20721634/

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