Chrome扩展开发Instagram加载事件

时间:2016-06-04 02:19:37

标签: javascript jquery google-chrome instagram

我最近开始开发一些小型Chrome扩展程序以获得乐趣。我目前正在制作一个"立即下载" Instagram的扩展程序,只需单击下载按钮即可下载Instagram图像,其值为" Get"放在帖子标题中。

正如您在下面的屏幕截图中看到的那样,按钮按预期显示。

enter image description here

但是当我向下滚动加载新帖子的位置时,按钮不会出现。

enter image description here

我现在的问题是,如何预测加载事件,以便按钮出现在正在加载的帖子上?

到目前为止,我的jQuery看起来像这样,

jQuery(document).ready(function() {
     jQuery(window).load(function() {
         var location = jQuery('._s6yvg');
         jQuery(location).each(function() {
             var image = jQuery(this).parent().find('div > div > div > div > img').attr('src');
             jQuery('<a class="get-button" href="' + image + '">Get</a>').appendTo(this);
         });
     });
});

如果您需要有关扩展的更多信息,请告诉我,我认为我写的是最重要的。我很抱歉语言不好。我不是母语人士。

提前致谢。

1 个答案:

答案 0 :(得分:1)

由于没有您尝试绑定的事件,您需要创建自己的“事件”。在这种情况下,它将用于何时加载图像。

考虑在页面上加载一组新图像时会发生什么。发生的一件事是文件的高度会发生变化。动态加载新内容时,文档的高度将增加。还在我身边吗?

知道这一点,我们可以创建一个函数来检查每个间隔的文档高度。我不打算为你编写完整的脚本,但下面是你可以做的一个例子。

// Your "append" method
function appendButton()
{
  var location = jQuery('._s6yvg');
  jQuery(location).each(function() {
    var image = jQuery(this).parent().find('div > div > div > div > img').attr('src');
    jQuery('<a class="get-button" href="' + image + '">Get</a>').appendTo(this);
  });
}

// This will monitor the document's height.
// When new images are loaded (thus making the document height increase),
// we will call the `appendButton` method again.
function monitorDocumentHeight()
{
  // Get the current $(document).height()

  // Compare the current height to the most recent height variable

  // If there is a difference in current_height and last_height:
    // > then the height has changed and we should
    // > call the `appendButton` method and store this height value.

  // Set an interval to run this method again and check the height (200ms)
}

jQuery(document).ready(function() {
  appendButton();             // The initial call
  monitorDocumentHeight();    // Start the interval
});

请注意,这也会将按钮附加到其上有按钮的现有图像上。您需要通过向appendButton方法添加条件来避免这种情况。