2

Web ページに iframe を埋め込んでおり、このフレームに jquery を挿入したいと考えています。

私は次のようなものを試しました:

frame.contentWindow.$ = window.$

これが機能している間、iframe の $ は、独自の独立したコピーではなく、親のスコープで実行されています。

フレームにaを挿入せずに、独立したjqueryオブジェクトをiframeに挿入する方法はあり<script src="/path/to/jquery.js"></script>ますか?

アップデート

解決しました。jquery.js は、無名関数でウィンドウ オブジェクトを受け入れることにより、スコープの jQuery を便利に定義します。

function(windowObject){ .... define jquery }(window)

したがって、この関数に jQuerify などの名前を付けて、親ウィンドウ オブジェクトに対して 1 回呼び出し、次に子ウィンドウ オブジェクトに対して呼び出すだけで済みました。

jQuerify = function(windowObject){ .... define jquery }
jQuerify(window)
jQuerify(iframe.contentWindow)
4

2 に答える 2

1

解決しました。jquery.js は、無名関数でウィンドウ オブジェクトを受け入れることにより、スコープの jQuery を便利に定義します。

function(windowObject){ .... define jquery }(window) したがって、私がしなければならなかったのは、この関数に名前を付けるだけでした。たとえば、jQuerify を呼び出し、親ウィンドウ オブジェクトに対して 1 回呼び出し、次に子ウィンドウ オブジェクトに対して呼び出します。

jQuerify = function(windowObject){ .... define jquery }
jQuerify(window)
jQuerify(iframe.contentWindow)
于 2016-11-03T23:48:17.833 に答える
0

jQueryオブジェクトのクローンを作成してみてください。

.clone関数の実装方法については、この回答またはこれを参照してから、次のように呼び出してください。

iframe.contentWindow.$ = window.$.clone();

また

iframe.contentWindow.$ = window.$.bind({});

...関数のクローンを作成する方法によって異なります。

于 2012-05-02T04:33:30.543 に答える