2009-04-14 5 views
0

J'ai besoin d'un signet javascript pour prendre l'URL que j'ai dans le presse-papiers analyser les 2 numéros et créer une nouvelle URL, et ajouter un lien vers le haut de la page, url à mon menu de marque-page.Analyser et ajouter l'URL du presse-papiers

Dire que j'ai années url comme ces

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

Je dois ajouter les numéros à cette url

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

puis ajouter l'URL à la partie supérieure du cadre « contenu ".

J'ai essayé pour toujours, mais je n'arrive pas à le comprendre.



Mise à jour
J'ai mis en place quelque chose, vous montrer ce que je dois. Celui-ci ne fonctionne pas bien.

Des idées pourquoi?

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
Cela fonctionne. Des changements que je peux faire pour le rendre encore meilleur?

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

Montrez-nous le code que vous avez essayé d'accomplir cette tâche. Je trouve la question un peu floue aussi. – Cerebrus

Répondre

5

Ok, d'abord tout ce que je pense que vous ne pouvez pas récupérer le texte du presse-papiers à partir du script java, je pense que ce serait un problème de sécurité si vous le pouvez.

Supposons que vous avez le presse-papiers dans une chaîne, vous pouvez appeler cette fonction:

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

Oui, je pense que vous pouvez copier du texte ** dans ** le presse-papiers, mais vous devez utiliser la fonctionnalité de collage du système d'exploitation pour le récupérer. – Cerebrus

2

Vous créez l'élément dans un document, puis annexant à un enfant situé dans un autre document. Cela ne fonctionne pas. Vous devez créer l'élément dans le document auquel vous allez l'ajouter.

De plus, l'objet n'a pas de membre src, il utilise href.

Par exemple:

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

Prenez note cependant que window.clipboardData est un code IE spécifique.

+0

Comment puis-je placer le lien en haut de la page plutôt qu'en bas? –

+0

si (document.body.firstChild) { document.body.insertBefore (lien, document.body.firstChild) } autre { document.body.appendChild (lien); } –

+0

Merci pour cela;) –

-1

JavaScript n'est pas autorisé à accéder au contenu du presse-papiers pour une seule raison: Sécurité. Si vous avez accidentellement copié votre numéro de carte de crédit ou d'autres informations d'identification personnelle dans votre presse-papiers et que vous avez visité un site Web malveillant, il pourrait facilement saisir votre presse-papiers et l'envoyer au serveur avant même que vous sachiez un risque. Ainsi, les développeurs de navigateurs l'interdisent explicitement.

+0

Comme Jon benedicto a dit. C'est possible dans IE. –

+0

Mais seulement dans la zone locale, correct? Sinon, c'est toujours un trou de sécurité flagrant. – greyfade

Questions connexes