打开网页后,检查它是否已打开,然后再继续

时间:2016-10-10 09:32:56

标签: javascript google-chrome-extension

我正在尝试创建一个Chrome扩展程序,只需单击一个按钮即可打开我经常访问的几个网页。目前点击时,它会打开我想要的4个网页中的1-4个网页,通常会过早停止。代码非常简单,所以我认为这是一个处理问题。出于这个原因,我想介绍一些延迟。我被告知不要使用我发现的研究中的sleep(),所以我试图实现代码,使得我的For循环等到页面加载后继续进行。这是代码:

function OpenInNewTabWinBrowser(url) {
  var win = window.open(url, '_blank');
  //win.focus();
}

function CheckLoading() {
  return document.readyState === "interactive";
}

var websites = ['https://reddit.com', 'https://xkcd.com', 'http://poorlydrawnlines.com', 'https://explosm.net'];
var MoveAlong;

for (var i = websites.length - 1; i >= 0; i--) {
  OpenInNewTabWinBrowser(websites[i]);
  console.log("Just opened a window!");
  MoveAlong = CheckLoading();
  console.log("Just checked if it was loading!");
  /*while (MoveAlong == false) {
  	console.log("Just realized it hasn't loaded all the way!");
  	sleep(10);
  	console.log("Just woke up!");
  	
  	MoveAlong = CheckLoading();
  	console.log("Just double checked if it had loaded!")
  }
  console.log("Just broke out of the while loop!")*/
}
console.log("Just finished doing everything you asked master!")

当我按原样运行代码时,我并不总是打开每一页。评论部分是我试图用作暂停功能的部分,但是当该代码未被注释时,它只打开一个页面,而不再是。我也尝试提供console.log注释进行调试,但是当我检查弹出窗口时,即使一个窗口打开,控制台也会关闭,我无法读取代码出错的地方。

我也试过这个循环和函数来检查加载的页面然后取消暂停。此代码从上面的代码段替换了For循环。它也无法正常工作。

var i = websites.length - 1;

do {
  MoveAlong = false;
  OpenInNewTabWinBrowser(websites[i]);
  i--;
  window.onload = function() {
    MoveAlong = true;
  }
}
while (MoveAlong == true && i >= 0);

非常感谢任何帮助。关于如何正确调试,如何检测网站是否正在加载,如何使此扩展工作。我已经有一段时间潜伏了,但现在我每天都在积极地编码。这是我的第一篇文章,希望它将成为一个有趣的爱好的开始。再次感谢你。

0 个答案:

没有答案