2016-04-08 1 views
0

J'aimerais obtenir toutes les images dans un fil d'actualité facebook car elles sont chargées. Je cours un script de tampermonkey. J'ai quelques problèmes:Obtenir dynamiquement les images qui se chargent dans une page

  1. le résultat final est inclus dans les images avec des URL que j'exclus (avec des URL statiques facebook).
  2. il ne comprend que certaines des images dans le fil d'actualité, et si je défile vers le bas, il ne réévalue pas ses sorties. C'est probablement à cause de la fonction de chargement, mais comment puis-je en faire une charge dynamique à la place? Où pourrais-je ajouter une fonction comme .scroll par exemple? J'utilise jquery pour exécuter les fonctions uniquement lorsque la page est chargée.

Devrais-je faire autre chose à la place?

est Ci-dessous une partie du code:

// ==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); 

Répondre