1

モーダル ボックスに情報を表示する必要がある Web パーツに取り組んでいます。過去に jQuery UI を使用し、そのシンプルさと .NET の世界で受け入れられていることを高く評価していたので、Web パーツを介してライブラリを統合するための推奨されるアプローチを見つけようとしています。ウェブ上にはたくさんの記事がありますが、簡潔な指示を求めて次から次へと跳ね返って、SO にたどり着きました。

ここに私の特定の制約があります:

  1. jQuery と jQuery UI をマスター ページに追加したくありません。
  2. 開発中の Web パーツを使用する既存の Web パーツ ページが多数あるため、ライブラリをページに追加するために CEWP を使用したくありません。
  3. ライブラリをページに追加するために使用するメカニズムが何であれ、そのページに既に追加されている jQuery と競合しないようにしたいと考えています。たとえば、このカスタム Web パーツの 2 つのインスタンスを追加すると、理想的には、2 番目のインスタンスは、jQuery が既にページに追加されていることを検出し、再度追加してはならないはずです。
  4. Designer を使用することはまったくオプションではありません (オプションではない可能性が高いにもかかわらず、私はこれを取り上げました)。

あまり話題から外れていないように思えますが、このモーダル ボックス内に jqGrid を追加する必要があります。SP申請ページ+IFRAMEの組み合わせなど、よりシンプルなアプローチを検討しています。

誰かが開始するための段階的な指示をくれることを願っています. この時点で宝くじに当選したのと同じです :-) ありがとうございます!

4

2 に答える 2

0

JavaScript を Web ページに動的に追加するには、次のようにします。

var jQscript = document.createElement('script');
jQscript.type = 'text/javascript';
jQscript.src = '//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js';

if (typeof (jQuery) == 'undefined') //you can use !jQuery.ui for jQuery UI
    document.getElementsByTagName('head')[0].appendChild(jQscript);

//make sure jQuery is fully loaded before trying to use it

ページ内の他のものを破壊しないことを確認するには、jQuery.noConflict() を参照してください。

于 2013-10-11T17:23:06.477 に答える
0

jQuery および jQueryUI スクリプトをスタイル ライブラリに追加すると、 RegisterClientScriptIncludeを使用できます。

// Define the name, type and url of the client script on the page.
String csname = "jQuery";
String csurl = "/Style Library/Scripts/jquery-2.0.3.min.js";
Type cstype = this.GetType();

// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;

// Check to see if the include script exists already.
if (!cs.IsClientScriptIncludeRegistered(cstype, csname))
{
    cs.RegisterClientScriptInclude(cstype, csname, csurl);
} 

必要に応じて jQuery への参照を置き換えて、jQueryUI に対して同じことを繰り返します。

于 2013-10-12T08:19:09.100 に答える