Разбор и добавление URL из буфера обмена - PullRequest
0 голосов
/ 14 апреля 2009

Мне нужна закладка javascript, чтобы взять URL-адрес, который у меня есть в буфере обмена, разобрать 2 числа, создать новый URL-адрес и добавить ссылку в верхнюю часть страницы, которая при нажатии добавляет URL-адрес в меню закладок.

Скажи, что у меня есть такие URL

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

Тогда мне нужно добавить цифры к этому URL

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

и затем добавьте URL в верхнюю часть фрейма "content".

Я пытался это делать вечно, но не могу понять.



Обновление
Я собрал кое-что, чтобы показать вам, что мне нужно. Этот не работает, хотя

Есть идеи, почему?

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



Обновление2
Это работает. Какие-нибудь изменения, которые я могу сделать, чтобы сделать это еще лучше?

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

Ответы [ 3 ]

5 голосов
/ 14 апреля 2009

Хорошо, во-первых, я думаю, что вы не можете извлечь текст из буфера обмена из сценария 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;
2 голосов
/ 14 апреля 2009

Вы создаете элемент в одном документе, а затем добавляете его к дочернему элементу, расположенному в другом документе. Это не работает Вам необходимо создать элемент в документе, к которому вы собираетесь добавить его.

Кроме того, объект не имеет члена 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 голосов
/ 14 апреля 2009

JavaScript не разрешен доступ к содержимому буфера обмена только по одной причине: Безопасность.

Если вы случайно скопировали номер своей кредитной карты или другую личную информацию в буфер обмена и посетили вредоносный веб-сайт, он может легко перехватить ваш буфер обмена и отправить его на сервер, прежде чем вы даже узнаете риск. Итак, разработчики браузеров прямо запрещают это.

...