0

我需要一个 javascript 书签来获取剪贴板中的 url,解析出 2 个数字并创建一个新的 url,并在页面顶部添加一个链接,单击该链接时会将 url 添加到我的书签菜单中。

说我有这样的网址

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

然后我需要将数字添加到这个 url

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

然后将 url 添加到框架“内容”的顶部。

我一直在尝试这个,但我无法弄清楚。



更新
我已经把一些东西放在一起,向你展示我需要什么。这个虽然行不通。

任何想法为什么?

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);
4

3 回答 3

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;
于 2009-04-14T12:56:18.127 回答
2

您正在一个文档中创建元素,然后将其附加到位于另一个文档中的子元素。这行不通。您需要在要将其添加到的文档中创建元素。

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

例如:

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

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

于 2009-04-14T16:24:52.400 回答
-1

JavaScript 不允许访问剪贴板的内容仅出于一个原因:安全性。

如果您不小心将信用卡号或其他一些个人身份信息复制到了剪贴板中,并且您访问了恶意网站,它很容易在您知道存在风险之前抢走您的剪贴板并将其发送到服务器。因此,浏览器开发人员明确禁止它。

于 2009-04-14T16:45:11.837 回答