[JavaScript] CHROME-Plugin (!=Webseite) - Text von Fremder-Seite auslesen und einfügen!

Dieses Thema im Forum "Webentwicklung" wurde erstellt von KaffeeJunkie, 9. September 2010 .

  1. 9. September 2010
    CHROME-Plugin (!=Webseite) - Text von Fremder-Seite auslesen und einfügen!

    Moinsen Raiders,

    ich Bastel grade an einen Plugin für Google Chrome,
    und suche nach einer Möglichkeit wie man einen Text einer Fremden Seite auslesen kann,
    der dann wieder eingefügt wird in das Plugin.

    Beispiel:
    User ist bei der Fremden Webseite nicht Angemeldet, bekommt er die Rückmeldung im Plugin "Offline".
    Wenn der User Angemeldet ist bekommt er die Rückmeldung "Online"

    Mit jQuery will es einfach nicht klappen, und PHP geht nicht.
    Die Fremde Webseite ist auch nicht wirklich Fremd, sondern gehört mir.

    Code:
     $file = fopen ("http://seite.tld/chromeonline.php?ref=", "0");
    $out="Melden Sie sich bei seite.tld an.";
    while (!feof ($file)) {
    $line = fgets ($file, 1024);
    $out="$out$line";
    }
    fclose($file);
    Das hatte ich mit jQuery versucht, will nur nicht laufen.
    Hatte jQuery auch eingebunden ;D
     
  2. 9. September 2010
    AW: Text von Fremder-Seite auslesen, und einfügen!

    Lies dir das durch!
    Die Erweiterungen können auf jede Domain zugreifen die du unter "permissions" eingetragen hast

    http://code.google.com/chrome/extensions/xhr.html
     
  3. 9. September 2010
    AW: Text von Fremder-Seite auslesen, und einfügen!

    Danke für den Link,
    nur das Hilft mir auch nicht wirklich weiter.

    Ich will ja nur "Text" auslesen und dann wieder Einfügen.
    Quasi so als wenn ich das ganze via iFrame Verlinken würde.

    Mit PHP wäre es für mich kein Problem, nur Chrome mag kein PHP in seinen Plugins was ja auch sinn macht.
     
  4. 9. September 2010
    AW: Text von Fremder-Seite auslesen, und einfügen!

    chrome(browser) ist es egal ob php oder sonstiges. glaube eher javascript ist die schlechteste methode. schau dir DOM von php an.
     
  5. 9. September 2010
    AW: Text von Fremder-Seite auslesen, und einfügen!

    Klar PHP wäre nicht schlecht,
    nur ich kann in Plugins kein PHP Einbauen.
     
  6. 9. September 2010
    AW: Text von Fremder-Seite auslesen, und einfügen!

    wenn der text (online, offline) in einen container steht und dieser container noch ne id hat,
    dann könntest du doch den inhalt vom contaier auslesen.

    z.b. mit Mootools
    HTML:
    alert($('element').innerHTML)
     
  7. 9. September 2010
    AW: Text von Fremder-Seite auslesen, und einfügen!

    Problem ist irgendwie das man nicht alles bei Chrome benutzen kann für die Plugins. Der Witz ist wenn ich das ganze als einfache HTML-Seite aufrufe im Browser funktionieren die ganzen funktionen die ich so brauche, erstelle ich sie dann als Plugin für Chrome funktioniert dann nichts mehr.

    Habe auch alle wichtigen Datein Validiert, und zusammen gefügt in der Hauptdatei. Aber es will einfach nicht so richtig klappen.
     
  8. 9. September 2010
    AW: CHROME-Plugin (!=Webseite) - Text von Fremder-Seite auslesen und einfügen!

    Schau dir mal http://phpjs.org/functions/index genauer http://phpjs.org/functions/file_get_contents:400 an

    Könnte dir eventuell helfen ...

    Oder auch nicht? Ajax ...
     
  9. 9. September 2010
    AW: CHROME-Plugin (!=Webseite) - Text von Fremder-Seite auslesen und einfügen!

    @Tiffany Dicks: phpjs ist doch müll... im übrigen verwendet die funktion die du gepostet hast auch ajax.

    -----

    gänige frameworks implementieren eigene funktionen die verhindern sollen, dass du damit auf fremde seiten zu greifst. im normalfall wird das vom browser selbst verhindert, die framework-entwickler wollen damit halt unerwartetes verhalten verhinden.

    so sinnig diese überprüfung bei webseiten ist, in einer plugin-umgebung ist das ganze fürn *****, denn dort wird das ganze meist ein wenig vom browser gelockert - die frameworks blockieren das aber weiterhin.

    verwende am besten die native implementierung ohne erweiterungen um inhalte von fremden seiten auszulesen:

    Code:
    function file_get_contents(file) {
     var req = new XMLHttpRequest();
     req.open('GET', file, false);
     req.send();
     
     // browser blockiert! (anfrage ist sync. siehe req.open())
     
     return req.responseText;
    }
    
    var content = file_get_contents('http://fremde-seite.de');
    //

    naja scheinbar blockiert jquery sowas nicht... vielleicht musst du dein plugin irgendwie authentifizieren (wie bei flash cross-domain anfragen)

    Code:
     "permissions": [ "tabs", "http://www.simpsons-tv.de/feeds/*", "http://www.simpsons-tv.de/episodes/*" ],
    


    thx @ Nanobyte
     
  10. 9. September 2010
    AW: CHROME-Plugin (!=Webseite) - Text von Fremder-Seite auslesen und einfügen!

    Hier eine alte (aber noch Funktionstüchtige) Erweiterung von mir: "Pro7 - Die Simpsons"
    (Ist nicht in der Chrome Gallery veröffentlicht!)


    manifest.json
    Code:
    {
     "browser_action": {
     "default_icon": "images/logo_16.png",
     "default_title": "Pro7 - Die Simpsons",
     "popup": "popup.html"
     },
     "description": "Diese Erweiterung zeigt dir wann 'Die Simpsons' auf Pro7 laufen!",
     "icons": {
     "128": "images/logo_128.png",
     "16": "images/logo_16.png",
     "32": "images/logo_32.png",
     "48": "images/logo_48.png"
     },
     "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+v/dekCaXeiV6kp/buWJF2Ykla1f3m+o55WdBwD65KAdoJZ7mfkMcZjzMVuHS5ZhhsaLjmDYV6YnJEQxiBw8SUKRqPqUIhwgEPdXrLs+vK/c3kezqrFr3oK9j6tNOtXJDu9krhQY7jDckty6craQR8uSgKTOcOEUKnqb/fVCf6wIDAQAB",
     "name": "Pro7 - Die Simpsons",
     "permissions": [ "tabs", "http://www.simpsons-tv.de/feeds/*", "http://www.simpsons-tv.de/episodes/*" ],
     "update_url": "http://clients2.google.com/service/update2/crx",
     "version": "0.1.2"
    }
    

    die-simpsons.js
    Code:
    var shows = [];
    
    function getSimpsonsData() { 
     updateData();
     /*
     if(localStorage['lastUpdate'] > ((new Date()/1000))+(60*0)) { 
     // Load new Data
     localStorage['dieSimpsonsData'] = [];
     updateData();
     console.log('XML Updated!');
     }
     else {
     // Load data from storage
     //console.log('First Data: ' + localStorage['dieSimpsonsData'][0]['title']);
     console.log('Data from Storage loaded!');
     showData;
     }
     */
     }
    
    function updateData() { 
     $.ajax({
     type: 'GET',
     dataType: 'xml',
     url: 'http://www.simpsons-tv.de/feeds/pro7.xml',
     success: function(xml) {
     shows = [];
     $(xml).find('episode').each(function() {
     //var date = new Date($(this).find('date').text());
     var d = new Date($(this).find('date').text());
     var show = { 
     'day': d.getDate() + '.' + d.getMonth() + '.' + d.getFullYear(),
     'time': d.getHours() + ':' + d.getMinutes(),
     'title': $(this).find('titleDE').text(),
     'simpsonsId': $(this).find('pcode').text(),
     'date': $(this).find('date').text(),
     'timestamp': (d.getTime()/1000)
     };
     shows.push(show);
     //localStorage['dieSimpsonsData'] = shows;
     //localStorage['lastUpdate'] = ((new Date())/1000);
     }
     );
     showData();
     }
     }
     ); // end of getFeed
     }
    
     
    function showData() {
     //var data = localStorage['dieSimpsonsData'];
     var data = shows;
     //console.log('Items: ' + localStorage['dieSimpsonsData'].toString());
     $.each(data, function(i, item) { 
     var show = item;
     if((show.timestamp+(60*21)) > ((new Date()).getTime()/1000) && (show.timestamp) < ((new Date()).getTime()/1000)+(60*60*24)) { 
     var divShow = $('<div/>').addClass('show').addClass('nobreak').append($('<div/>').addClass('oneline').attr('simpsons-id', show.simpsonsId).append($('<span/>').addClass('day').text(show.day)).append($('<span/>').addClass('time').text(show.time)).append($('<span/>').addClass('title').addClass('nobreak').text(show.title)).click(function() { 
     window.open('http://www.simpsons-tv.de/episodes/' + $(this).attr('simpsons-id') + '.html');
     }) 
     );
     
     /* Highlight next show
     if((d.getTime()/1000) > (((new Date())/1000)-(60*10))) { 
     $(divShow).css('background-color', 'rgba(0,0,0,' + (0.1 * (d.getTime()/1000) - (((new Date())/1000)-(60*10))) );
     $(divShow).attr('title', (0.1 * (d.getTime()/1000) - (((new Date())/1000)-(60*10))));
     }
     */
     if(show['timestamp'] <= (new Date()/1000)) { 
     $(divShow).addClass('onair');
     //$(divShow).append($('<br/>')).append($('<div/>').addClass('onair-note').text('Jetzt auf Prosieben!'));
     }
     
     $(divShow).appendTo('#content');
     }
     } // end of each
     );
     }
    
    
    $(document).ready(function() { 
     $('<div/>').attr('id', 'head').html('<h1>Pro7 - Die Simpsons</h1>').appendTo('body', 0);
     $('<div/>').attr('id', 'content').appendTo('body', 0);
     $('<div/>').attr('id', 'footer').addClass('nobreak').html('Copyright by <a href="http://nanobyte-online.de/">Nanobyte-Online.de</a> - Data from <a href="http://www.simpsons-tv.de/">Simpsons-TV.de</a>').appendTo('body', 0);
     $('#footer > a').click(function() { 
     window.open($(this).attr('href'));
     } 
     );
     //updateData();
     delete(localStorage['firstStart']);
     delete(localStorage['dieSimpsonsData']);
     localStorage['dieSimpsonsData'] = 0;
     localStorage['dieSimpsonsData'] = [];
     getSimpsonsData();
     }
     );
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.