質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1582閲覧

「KeySnail」のコードをブックマークレットに変換することは可能ですか?

YouCode21

総合スコア13

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/06/20 10:54

編集2017/06/20 21:23

Firefoxプラグイン「KeySnail」のコードをブックマークレットに変換することは可能ですか?

具体的には、表示中ページのリンクをタイトル付でクリップボードに送るという物です。それを、貼り付けると以下のようになります。

イメージ説明

Autohotkeyで実現するといった代替案でも構いません
お知恵いただけるとうれしいですm(_ _)m

※ブラウザ:Firefox 53

function (ev, arg) { var w = window._content; var d = w.document; var copyLabel = d.title; var copyURL = d.location.href; var textUnicode = copyURL; var textHtml = "<a href=\"" + copyURL + "\">" + copyLabel + "</a>"; var str = Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString); if (!str) { return false; } str.data = textUnicode; var htmlstring = Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString); if (!htmlstring) { return false; } htmlstring.data = textHtml; var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); if (!trans) { return false; } trans.addDataFlavor("text/unicode"); trans.setTransferData("text/unicode", str, textUnicode.length * 2); trans.addDataFlavor("text/html"); trans.setTransferData("text/html", htmlstring, textHtml.length * 2); var clipboard = Components.classes['@mozilla.org/widget/clipboard;1'].getService(Components.interfaces.nsIClipboard); if (!clipboard) { return false; } clipboard.setData(trans, null, Components.interfaces.nsIClipboard.kGlobalClipboard); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/06/20 16:54

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
YouCode21

2017/06/20 21:24

投稿ありがとうございます。そんな機能があるのですね!見やすくなりますね!
guest

回答1

0

Components はプラグイン内でしか使えないと思いますが、Clipboard API などを利用すれば出来ると思います。

【Chrome, Firefox, IEのCopy & Paste実装方法 - Qiita】
http://qiita.com/saitoxu/items/b317ccde7e2af9797288

【「クリップボードにコピー」を実装する - Qiita】
http://qiita.com/inouet/items/26b93c5f5f4b65c05e00

投稿2017/06/21 06:50

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YouCode21

2017/06/23 15:12

ご返事ありがとうございます。 では、http://chriszarate.github.io/bookmarkleter/ のように javascriptとブックマークレットを相互変換するサービスをいくつ試そうと不可能で、APIを自分で組み込んで書き直さないと不可能だということでしょうか?以下、単純に変換した結果ですが… ''' javascript:(function%20(ev,arg){var%20w=window._content;var%20d=w.document;var%20copyLabel=d.title;var%20copyURL=d.location.href;var%20textUnicode=copyURL;var%20textHtml="<a%20href=\""+copyURL+"\">"+copyLabel+"</a>";var%20str=Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);if(!str){return%20false;}str.data=textUnicode;var%20htmlstring=Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);if(!htmlstring){return%20false;}htmlstring.data=textHtml;var%20trans=Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);if(!trans){return%20false;}trans.addDataFlavor("text/unicode");trans.setTransferData("text/unicode",str,textUnicode.length*2);trans.addDataFlavor("text/html");trans.setTransferData("text/html",htmlstring,textHtml.length*2);var%20clipboard=Components.classes['@mozilla.org/widget/clipboard;1'].getService(Components.interfaces.nsIClipboard);if(!clipboard){return%20false;}clipboard.setData(trans,null,Components.interfaces.nsIClipboard.kGlobalClipboard);})() '''
kei344

2017/06/23 16:20 編集

> 不可能だということでしょうか? そうなります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問