我想在facebook加载时获取所有图片。我正在运行一个tampermonkey脚本。我遇到了一些问题:
我正在使用jquery仅在加载页面时运行这些函数。我应该做别的事吗?
以下是代码的一部分:
// ==UserScript==
// @name Accountability
// @namespace http://tampermonkey.net/
// @include https://www.facebook.com/*
// @include http*://*.facebook.com/*
// @exclude htt*://*static*.facebook.com*
// @version 0.1
// @description
// @author You
// @match http://tampermonkey.net/scripts.php
// @grant none
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// ==/UserScript==
/* jshint -W097 */
'use strict';
window.addEventListener('load', function() {
var all_images = document.evaluate('//img[@src]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
var newsfeed = document.evaluate('//*[contains(@id, topnews_main_stream_408239535924329)]', document, null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
var imgSrcs = [];
for (var i=0; i < all_images.snapshotLength; i++){
var this_image = all_images.snapshotItem(i);
var src = this_image.src;
if(src.indexOf('static') > -1){
continue;
}
if(src.indexOf('external') > -1){
continue;
}
imgSrcs.push(src);
console.log(this_image.src);
this_image.addEventListener("click", my_func, false);
}
for (var i=0; i < newsfeed.snapshotLength; i++){
var this_news = newsfeed.snapshotItem(i);
var src = this_news.src;
if(this_news.children.length>0){
}
if(Object.getOwnPropertyNames(this_news)[0]== '_startTime'){
var x = this_news.onreadystatechange();
}
this_news.addEventListener("click", my_func, false);
this_news.addEventListener("mouseover", my_func, false);
}
var my_func = function(){
console.log("the list", imgSrcs);
}
}, false);
答案 0 :(得分:1)
您可以load
绑定所有img
标签,例如
$("img").on("load", function() {
console.log($(this)[0].src)
});
如果您真的想使用纯javascript来模仿on
,可以参考Emulate jQuery "on" with selector in pure javascript