3

大企業で使用するソーシャルブックマークアプリケーションを構築しています。

これには、現在正常に動作する単純な JavaScript ブックマークレットがあります。ブックマークレットを使用すると、ユーザーは一般的なブラウザーからブックマークを保存できます。これは、公開されている Web リンクに対して非常にうまく機能し、ブラウザーに依存しません。このようなブックマークレットの最も近い例は次のとおりです。

http://delicious.com/help/bookmarklets

ブラウザ (Chrome/Mac としましょう) で PDF を表示している場合:

http://website.com/file.pdf

もちろん、これは機能しません。ブラウザーで表示されている PDF の上に HTML マークアップを挿入する方法がないためです。

http 以外のリソースへのリンクをブックマークレット内で機能させるための最良の方法は何ですか? 何らかの非表示の iframe を作成して挿入し、親フレームとその URL を取得して保存できるようにする必要がありますか?

4

1 に答える 1

2

すべてのブラウザについてはわかりませんが、FirefoxではPDFファイルと画像にJavascriptとiFrameを挿入できます。これは、Firefoxによって生成された特別なダミーHTMLページ内に画像とPDFファイルが実際に表示されるためです。Chromeも同じかもしれないと思います。

これは、PDFまたは画像を開いてからWebコンソール(メニューを使用する必要があります。この場合はCTRL + SHIFT + Kを使用できません)を開いてJSコンソールを取得し、入力document.documentElement.outerHTMLして実際のダミーHTMLを表示することで確認できます。 PDFまたは画像が埋め込まれています。

iFrameやその他のHTMLをページに追加できない状況を検出するために、document.documentElementが定義されているかどうか、またはその他のDOM要素が定義されているかどうかをテストする場合があります。

これが機能しないブラウザまたはファイルタイプの組み合わせの場合、または単に物事を単純にしたい場合は、サーバー上のページを新しいタブまたはウィンドウで開き、ページのタイトルと場所をそのページに渡します。http://mysocialsite.tld/add-bookmark?title=file.pdf&location=http://anothersite.tld/file.pdfのように。私のサーバー上のそのページは、ユーザーがブックマークプロセスを完了することを可能にします。

于 2013-01-09T18:19:16.690 に答える