2017-09-12 2 views
1

Ich versuche ein Userscript zu schreiben, das mir erlauben soll einen Übersetzer von jeder Webseite zu öffnen.Teil von Webseite B in Webseite einfügen A

Ich füge eine Schaltfläche an den Körper der aktuellen Webseite an, wenn man darauf klickt, ruft sie den Inhalt eines Übersetzers (google, reverso ...) ab und zeigt ihn auf der Webseite an.

Hier ist der Code:

var input = document.createElement("input"); 
input.type = "button"; 
input.value = "Open translator"; 
input.onclick = OpenTranslator; 

document.body.appendChild(input); 

function OpenTranslator(){ 
    GetTranslatorContent(); 
} 

function GetTranslatorContent(){ 
    $.get('http://www.reverso.net/text_translation.aspx?lang=FR').then(function(responseData){ 
    //alert("Got content"); 
    //document.body.appendChild($('.translate-holder')); 
    var targetContent = $('.translate-holder'); 
    if (targetContent != null && targetContent != undefined){ 
     alert("Good so far"); 
    } 
    }) 

} 

Allerdings habe ich diese Nachricht erhalten, wenn Sie diesen Code ausführen:

Error from previous code

Also, meine Frage ist die Folowing:

Ist es möglich zu tun, was ich versuche zu tun? (Holen Inhalt von einer Seite, um es in eine andere zu setzen)

Wenn die Antwort auf die vorherige Frage ja ist, kann ich dies auf Seiten tun, die ich nicht der Administrator bin? (Denn wenn ich gut verstanden, die Fehler, die ich bekommen wird dadurch verursacht, dass die Seite, die ich anfordernden bin nicht ist mir erlaubt, zu tun, was ich will)

Dank

+1

ähnliche Frage beantwortet: https://stackoverflow.com/questions/20035101/no-access-control-allow-origin-header-is-present-on-the- requested-resource – tommyO

+0

Oh, in der Tat, habe ich nicht gelesen bis zum Ende: Sorry. – Andromelus

Antwort

2

Ja, es ist möglich. Sie müssen domänenübergreifende Anfragen verwenden. Schauen Sie sich ein Beispiel für reines JS an.

var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest; 
 

 
var xhr = new XHR(); 
 

 
// cross domain request 
 
xhr.open('GET', 'http://domain/request', true); 
 

 
xhr.onload = function() { 
 
    alert(this.responseText); // response 
 
} 
 

 
xhr.onerror = function() { 
 
    alert('Error ' + this.status); // Error 
 
} 
 

 
xhr.send();

Aber vergessen Sie nicht, dass:

regelmäßige Web-Seiten, die XMLHttpRequest-Objekt verwenden, können Daten von Remote-Servern zu senden und empfangen, aber sie sind begrenzt durch die gleiche Herkunft Politik. Erweiterungen sind nicht so begrenzt. Eine Erweiterung kann mit Remote-Servern außerhalb ihres Ursprungs kommunizieren, solange sie zuerst die ursprungsübergreifenden Berechtigungen anfordert.

(von https://developer.chrome.com/apps/xhr)

+0

Wie nennt man eine Erweiterung? @zhuravlyov – Andromelus

+1

Bitte lesen Sie diese https://stackoverflow.com/questions/20035101/no-access-control-allow-origin-header-is-present-on-the-requested-resource?noredirect=1&lq=1 – zhuravlyov

Verwandte Themen