2009-04-14 6 views
0

Ich brauche ein Javascript Lesezeichen, um die URL, die ich in der Zwischenablage Parsing die 2 Zahlen und erstellen Sie eine neue URL, und fügen Sie einen Link an den oberen Rand der Seite, dass beim Klicken auf die hinzu URL zu meinem Lesezeichenmenü.Parse und URL aus der Zwischenablage

sagen, dass ich auf diese URL URLs wie diese

http://www.website.com/frontpageeditor.jhtml?sectionID=2844&poolID=6276
javascript:getPoolPageUrl(9800,22713)

Dann muss ich die Zahlen addieren haben

javascript:frames['content'].getPoolPageUrl(9800,22713)

und dann die URL der Oberseite des Rahmens „Inhalte hinzufügen ".

Ich habe es für immer versucht, aber ich kann es nicht herausfinden.



aktualisieren
ich etwas zusammen gesetzt haben, um Ihnen zu zeigen, was ich brauche. Dieser funktioniert jedoch nicht.

Irgendwelche Ideen warum?

var url = window.clipboardData.getData('Text'); 
var reg = /(\d+)/g; 
var matches = url.match(reg); //returns ["2844","6276"] 
var newUrl = "javascript:frames['content'].getPoolPageUrl("+matches[0]+","+matches[1]+")"; 
var link = document.createElement('a'); 
link.src = newUrl; 
frames['content'].document.body.appendChild(link); 



Update2
Dies funktioniert. Irgendwelche Änderungen, die ich tun kann, um es noch besser zu machen?

var url = window.clipboardData.getData('text'); 
var matches = url.match(/(\d+)/g); 
var link = frames['content'].document.createElement('a'); 
link.href = "javascript:frames['content'].getPoolPageUrl("+matches[0]+","+matches[1]+")"; 
link.innerHTML = document.title; 
frames['content'].document.body.appendChild(link); 
+0

Zeigen Sie uns den Code, den Sie versucht haben, die genannte Aufgabe zu erfüllen. Ich finde die Frage auch etwas unklar. – Cerebrus

Antwort

5

Ok, vor allem denke ich, Sie nicht den Text aus der Zwischenablage von Java-Skript abrufen können, ist meine Vermutung, dass es ein wichtiges Sicherheitsproblem wäre, wenn Sie können.

Nehmen wir an, Sie über die Zwischenablage in eine Zeichenfolge haben Sie diese Funktion aufrufen können:

var url = "http://www.website.com/frontpageeditor.jhtml?sectionID=2844&poolID=6276"; //clip 
var reg = /(\d+)/g; 
var matches = url.match(reg); //returns ["2844","6276"] 
var newUrl = "javascript:frames['content'].getPoolPageUrl("+matches[0]+","+matches[1]+")"; 
frames['content'].document.getElementById("linkPlaceHolderWhereYouWantToAdd").href=newUrl; 
+0

Ja, ich denke, Sie können Text ** in die Zwischenablage kopieren, aber Sie müssen die Einfügefunktion des Betriebssystems verwenden, um sie abzurufen. – Cerebrus

2

Sie das Element in einem Dokument zu erstellen, und es dann zu einem Kind in einem anderen Dokument befindet anhängt. Dies funktioniert nicht. Sie müssen das Element in dem Dokument erstellen, dem Sie es hinzufügen möchten.

Auch das a-Objekt hat kein src-Mitglied, es verwendet href.

ZB:

var link = frames['content'].document.createElement('a'); 
link.href = newUrl; 
link.innerHTML = newUrl; 
frames['content'].document.body.appendChild(link); 

Sie jedoch zu beachten, dass window.clipboardData ist IE-spezifischen Code.

+0

Wie kann ich den Link oben auf der Seite statt unten platzieren? –

+0

if (document.body.firstChild) { document.body.insertBefore (link, document.body.firstChild) } sonst { document.body.appendChild (link); } –

+0

Vielen Dank dafür;) –

-1

JavaScript ist aus einem einzigen Grund nicht erlaubt, auf den Inhalt der Zwischenablage zuzugreifen: Sicherheit.

Wenn Sie versehentlich Ihre Kreditkartennummer oder andere personenbezogene Daten in Ihre Zwischenablage kopiert haben und eine bösartige Website besucht haben, könnte sie Ihre Zwischenablage leicht einsammeln und an den Server senden, bevor Sie überhaupt wussten ein Risiko. Also, Browser-Entwickler verbieten es explizit.

+0

Wie Jon benedicto sagte. Es ist möglich in IE. –

+0

Aber nur in der lokalen Zone, richtig? Wenn nicht, ist dies immer noch ein eklatantes Sicherheitsloch. – greyfade