2009-04-14 312 views
0

我需要一个JavaScript书签来取得我在剪贴板中的url解析出2个数字并创建一个新的url,并添加一个链接到页面顶部,点击时添加网址到我的书签菜单。解析并添加来自剪贴板的网址

说我有网址的像这些

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

然后,我需要的号码添加到这个网址

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

,然后将该网址添加到框架“内容的顶部”。

我已经试过这个,但我无法弄清楚它。



更新
我已经把东西在一起,告诉你我所需要的。这一个虽然不起作用。

任何想法为什么?

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
这工作。我可以做的任何改变,使其更好?

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

向我们展示您尝试完成上述任务的代码。我觉得这个问题也不太清楚。 – Cerebrus 2009-04-14 12:57:13

回答

5

好吧,首先,我认为你不能检索剪贴板从Java脚本文字,我的猜测是,如果你能这将是一个重大的安全问题。

让我们假设你有一个字符串的剪贴板,你可以调用这个函数:

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

是的,我认为您可以将文本**复制到剪贴板,但您需要使用操作系统的粘贴工具来检索它。 – Cerebrus 2009-04-14 13:04:23

2

你一个文档中创建的元素,然后将其附加到位于另一文档中的孩子。这不起作用。您需要在文档中创建要添加到其中的元素。

此外,一个对象没有src成员,它使用href。

如:

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

不要但是请注意,这是window.clipboardData IE特定的代码。

+0

如何将链接放置在页面顶部而不是底部? – 2009-04-14 16:46:31

+0

if(document.body。(链接,document.body.firstChild) } 其他{ document.body.appendChild(link); } – 2009-04-14 16:56:02

-1

由于某个原因,JavaScript不允许访问剪贴板的内容:安全性。

如果您不小心将您的信用卡号码或其他个人身份信息复制到剪贴板中,并且您访问了恶意网站,那么您甚至可以轻松地抓取剪贴板并将其发送到服务器,然后才能知道存在风险。所以,浏览器开发人员明确禁止它。