2009-04-14 15 views
0

URLを取得するにはjavascriptのブックマークが必要です。クリップボードに2つの数字を解析して新しいURLを作成し、ページの上部にリンクを追加してクリックすると私のブックマークメニューへのURL。URLを解析してクリップボードからURLを追加する

は、その後、私は

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

このURLに番号を追加し、フレーム「コンテンツの先頭にURLを追加する必要があり、私はこれらの

http://www.website.com/frontpageeditor.jhtml?sectionID=2844&poolID=6276
javascript: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); 



アップデート2
これは動作します。それをさらに良くするために私ができる変更はありますか?あなたができるならば、それは重大なセキュリティ問題になるだろうと私の推測、私はあなたがJavaスクリプトからクリップボードからテキストを取得することができないと思いますまず、[OK]を

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

答えて

5

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

はい、クリップボードにテキスト**をコピーすることはできますが、OSのペースト機能を使用してそれを取得する必要があります。 – Cerebrus

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固有のコードであること、しかし、注意を行います。

+0

リンクをページ下部の代わりに配置するにはどうすればよいですか? –

+0

if(document.body。firstChild){ document.body.insertBefore(link、document.body.firstChild) } else { document.body.appendChild(link); } –

+0

ありがとうございます;) –

-1

JavaScriptは、理由だけでクリップボードの内容にアクセスすることはできません。セキュリティ。

誤ってクレジットカード番号などの個人識別情報をクリップボードにコピーして、悪意のあるWebサイトにアクセスした場合、クリップボードを奪ってサーバーに送信することができますリスク。したがって、ブラウザ開発者は明示的にそれを禁止します。

+0

Jon benedictoさんのように言いました。 IEで可能です。 –

+0

しかし、ローカルゾーンでのみ正しいですか?そうでない場合、これはまだ目障りなセキュリティホールです。 – greyfade

関連する問題