1

UserVoice などのホストされたサービスは、そのコンテンツを他の Web サイトにどのように埋め込むのですか?

サービス プロバイダーの JavaScript ファイルを自分のページに含めることによるようですが、私が興味を持っているのは、そのようなサービスを作成するためのビルディング ブロックです。

たとえば、jQuery、mooTools、prototypejs などのライブラリを使用しているか、名前空間の競合をどのように回避しているか?

また、JavaScript のこの特定の使用法について説明している書籍、記事、ブログ投稿があるかどうかも疑問に思いました (JavaScript に関する一般的なリソースを探しているわけではありません)。

よろしくお願いいたします。

エリオット

4

4 に答える 4

3

これは、Webウィジェットを構築する方法(jQueryを使用)で見つけた素晴らしいチュートリアルです

于 2011-05-18T13:19:36.093 に答える
2

一般的に、あなたが説明しているものは「Javascriptウィジェット」と呼ばれます(UserVoiceはたまたまページの横に表示されます)。

チェックアウトできるJavascriptウィジェットの作成に関する優れたチュートリアルがあります。

于 2009-09-15T18:31:52.757 に答える
2

このような組み込み可能なサービスの基本構造は次のようになります。

  1. サービスがスクリプトをページの下部に含めることを義務付けていない場合は、既存のハンドラーのつま先を踏むことなく、本文の onload イベントをフックします (既存のハンドラー関数をインターセプトすることにより、チェーンされる可能性があります)。他の機能へ)。
  2. ドキュメントに新しい HTML 要素を挿入します。HTMLコードは、文字列リテラルとしてスクリプトにインライン化される可能性が最も高く、挿入された単一の要素にinnerHTMLを設定する方が、一連の関数呼び出しを使用してDOMを直接操作するよりも簡単かつ高速です。
  3. 名前の競合を避けるために、スクリプト全体をクロージャー内に配置する必要があります。
  4. JS フレームワークを使用する場合と使用しない場合があります。フレームワークを含める場合は、既存の別のフレームワーク、または同じフレームワークの別のバージョンと競合する可能性があるため、注意が必要です。
于 2009-09-15T18:34:49.117 に答える
2

EDT: 通常、クライアント/顧客/友人のページにスクリプトを含めるようにし、そのスクリプトを介して次の操作を実行できます。

純粋なJSでは、スクリプトをリモートの場所(またはそれほどリモートではない場所)から動的にロードできます

   var script = document.createElement('script');
   script.type = 'text/javascript';
   script.src = 'your/remote/scripts/path.js';
   document.getElementsByTagName('body')[0].appendChild(script);

// $.getScript('your/remote/scripts/path.js'); jqueryで、しかしあなたはjQueryがリモートサイトにロードされていることを確認します

次に、ロードしたスクリプトは、このような要素を作成するなどのさまざまなアクションを実行できます

var body = document.getElementsByTagName('body')[0]; var aDiv = document.createElement('script'); /* ここで、div プロパティを変更して確認できます */ body.appendChild(aDiv); // $('').appendTo('body'); jQuery用

JavaScript の詳細については、たとえばJavascript: The Good PartsまたはDefinitive Guide To Javascript を参照してください。

于 2009-09-15T18:37:06.100 に答える