我的Greasemonkey脚本开始加载一系列图像。在需要时如何停止?

凯特·考克斯(Kat Cox)

我在拨号时使用ImgLikeOpera和Squid Caching Proxy管理我的带宽。但是,我无法将其设置为一次加载一幅图像,因此我有一个聪明的主意,那就是编写一个脚本,该脚本将在新选项卡中一次打​​开一个页面上的每个图像,然后关闭它们,以使它们将保存在我的缓存中。

脚本效果很好,添加了一个开始按钮,以便我可以控制它的启动时间...但无法弄清楚如何制作一个会中断该过程的停止按钮。我尝试了很多东西,但没有任何效果...

好像在循环中时,它听不到循环外发生了什么...

我感觉有一个非常简单的方法可以执行此操作,但是我对此感到沮丧。这不应该是为了休息或退货吗?

这是我脚本的相关部分:

var box = document.createElement ('div');
box.id = 'mySelectBox';
document.body.appendChild (box);

box.innerHTML = 'click>';

var searchButton = document.createElement ('div');
searchButton.className = 'mySearchButton';
searchButton.textContent = 'Search and open';

box.insertBefore (searchButton, box.nextSibling);

var stopButton = document.createElement ('div');
stopButton.className = 'myStopButton';
stopButton.textContent = 'Stop';

box.insertBefore (stopButton, box.nextSibling);

var mytable = document.getElementById ('lair-sort-pets').getElementsByTagName ('img');
var linksToOpen = [];
var mywin2 = null;

function openpics () {

    for (var J = 0, L = mytable.length; J < L; J++) {

        linksToOpen.push (mytable[J].src); //-- Add URL to list
    }

    openLinksInSequence ();
};

function openLinksInSequence () {

    if (mywin2) {
        mywin2.close ();
        mywin2 = null;
    }

    if (linksToOpen.length) {

        var link = linksToOpen.shift ();
        mywin2 = window.open (link, "my_win2");

        mywin2.addEventListener ('load', openLinksInSequence, false);

    }
}

searchButton.addEventListener ('click', openpics, true);
//stopButton.addEventListener ('click', , true);


如何使“停止”按钮实际上停止加载更多链接?

布罗克·亚当斯(Brock Adams)

使用全局状态变量。像这样:

var okayToOpenLinks = true;

searchButton.addEventListener ('click', openpics);
stopButton.addEventListener ('click', stopLinkSequence);

function openpics () {
    okayToOpenLinks = true;

    if (linksToOpen.length === 0) {
        for (var J = 0, L = mytable.length; J < L; J++) {

            linksToOpen.push (mytable[J].src); //-- Add URL to list
        }
    }

    openLinksInSequence ();
};

function stopLinkSequence () {
    okayToOpenLinks = false;
}

function openLinksInSequence () {
    if (mywin2) {
        mywin2.close ();
        mywin2 = null;
    }

    if (okayToOpenLinks  &&  linksToOpen.length) {
        var link = linksToOpen.shift ();
        mywin2 = window.open (link, "my_win2");

        mywin2.addEventListener ('load', openLinksInSequence, false);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何挑选一系列提交但停止修改?

来自分类Dev

如何从一系列图像生成PDF?

来自分类Dev

如何使用Javascript创建一系列图像以在另一个图像下形成加载屏幕?

来自分类Dev

如何遍历一系列结构

来自分类Dev

如何制作一系列句子?

来自分类Dev

如何打印一系列纸张?

来自分类Dev

如何测试一系列互动?

来自分类Dev

如何制作一系列物品

来自分类Dev

如何串联一系列细胞

来自分类Dev

如何减少一系列if语句?

来自分类Dev

如何确定DICOM系列是3D体积还是一系列图像?

来自分类Dev

如何生成一系列介于开始日期和结束日期之间的日期范围?

来自分类Dev

生成一系列相乘的数字,但从1开始

来自分类Dev

我需要替换向量中的一系列元素

来自分类Dev

如果图像出现问题,如何使JavaScript旋转一系列图像

来自分类Dev

如何从由一系列图像组成的无损压缩视频中提取原始图像?

来自分类Dev

如何创建一个简单的脚本(在Linux中)执行一系列命令?

来自分类Dev

如何在php中将一系列图像转换为一个pdf文档

来自分类Dev

如何在php中将一系列图像转换为一个pdf文档

来自分类Dev

如何停止一系列任务但继续在Gulp中监视文件?

来自分类Dev

如何链接一系列返回承诺并需要不同参数的函数?

来自分类Dev

检查是否存在一系列图像,如果在Javascript中找不到图像,则停止

来自分类Dev

如何编写脚本来检测ssh与一系列远程计算机的连接?

来自分类Dev

如何在Bash脚本中列出一系列文件?

来自分类Dev

如何编辑/创建新的批处理脚本,以通过一系列链接设置批量下载?

来自分类Dev

如何在bash脚本中的一系列命令中重用sudo

来自分类Dev

Webpack:如何为带有一系列依赖项的“ webpack”创建加载器?

来自分类Dev

在DigitalMicrograph脚本中定义一系列功能

来自分类Dev

在MySQL中运行一系列脚本

Related 相关文章

  1. 1

    如何挑选一系列提交但停止修改?

  2. 2

    如何从一系列图像生成PDF?

  3. 3

    如何使用Javascript创建一系列图像以在另一个图像下形成加载屏幕?

  4. 4

    如何遍历一系列结构

  5. 5

    如何制作一系列句子?

  6. 6

    如何打印一系列纸张?

  7. 7

    如何测试一系列互动?

  8. 8

    如何制作一系列物品

  9. 9

    如何串联一系列细胞

  10. 10

    如何减少一系列if语句?

  11. 11

    如何确定DICOM系列是3D体积还是一系列图像?

  12. 12

    如何生成一系列介于开始日期和结束日期之间的日期范围?

  13. 13

    生成一系列相乘的数字,但从1开始

  14. 14

    我需要替换向量中的一系列元素

  15. 15

    如果图像出现问题,如何使JavaScript旋转一系列图像

  16. 16

    如何从由一系列图像组成的无损压缩视频中提取原始图像?

  17. 17

    如何创建一个简单的脚本(在Linux中)执行一系列命令?

  18. 18

    如何在php中将一系列图像转换为一个pdf文档

  19. 19

    如何在php中将一系列图像转换为一个pdf文档

  20. 20

    如何停止一系列任务但继续在Gulp中监视文件?

  21. 21

    如何链接一系列返回承诺并需要不同参数的函数?

  22. 22

    检查是否存在一系列图像,如果在Javascript中找不到图像,则停止

  23. 23

    如何编写脚本来检测ssh与一系列远程计算机的连接?

  24. 24

    如何在Bash脚本中列出一系列文件?

  25. 25

    如何编辑/创建新的批处理脚本,以通过一系列链接设置批量下载?

  26. 26

    如何在bash脚本中的一系列命令中重用sudo

  27. 27

    Webpack:如何为带有一系列依赖项的“ webpack”创建加载器?

  28. 28

    在DigitalMicrograph脚本中定义一系列功能

  29. 29

    在MySQL中运行一系列脚本

热门标签

归档