Youtube视频网址,Chrome扩展程序 - jquery文档准备不触发



我创建了一个chrome扩展程序,它使用youtube api来浏览评论和抓取链接。然后,我使用 chrome 扩展程序内容脚本将结果插入到每个 youtube 视频页面上,并将链接转换为可点击。

我的问题是,只要上一页不是视频页面观看/v= 或在页面刷新时,jquery document.ready 才会触发。

换句话说,通过youtube自己的链接从一个观看页面点击到另一个观看页面不会导致文档.ready触发。

这似乎与YouTube现在加载观看页面的方式有关。只有"?v="参数在更改,我猜 youtube 会动态加载所有内容,而不是重新加载页面。

我可以使用 document.ready 之外的替代方案吗?

$(document).ready(function() {
 app.insertLinksInit();
 });

我在想是否有办法在 window.location.href 上收听更改,但从我所读到的内容来看,这似乎没有附加事件。我可以侦听哪些其他事件以了解 url 中的参数已更改?我正在使用jquery-2.0.3.min。

如果"onready"没有帮助,最简单的方法是轮询页面以找到您需要的代码,然后启动您需要的行为。

内容脚本.js

var regex = /<asw+/; //finds <a tags (for example) 
function polling(){
  if (regex.test(document.querySelector('#closest-id').innerHTML)) {
    // The regular expression produced a match, so notify the background page.
    chrome.extension.sendRequest({}, function(response) {});
  } else {
    //nothing found test again, delay it as long as possible
    setTimeout(polling,1000);
  }
}
polling();

背景.js

function onRequest(request, sender, sendResponse) {
   // your actions here
};
// Listen for the content script to send a message to the background page.
chrome.extension.onRequest.addListener(onRequest);

相关内容

  • 没有找到相关文章

最新更新