2012-04-13 27 views
2

私はSocialEngine 4に基づいてmoo-tools-1.2.5を使用したサイトを持っています。 ポップアップ(スムーズボックスプラグインが組み込まれています)で開いているjのiframeがあります。 そして、私は)($$だけ呼び出すことによって、JSがそれに含まれるから、このIFRAMEのDOM要素を取得することはできません、私はこのようなその場しのぎ使用する必要がしました:mootools。 iframe内でDOM要素を取得できません

var context = (window.frames[0]) ? window.frames[0] : window; 
context.$('user_email').set('value', context.$('1_1_30').get('value')); 

奇妙だと私は推測しますiframe内で標準のSocialEngineモジュールのJSも機能しないため、予期しない動作です。

答えて

1

これは、1.2.5では、$$this.document.getElementsの別名であるためです。私は、あなたは彼らがmootoolsy得るので、アイフレームを拡張することができますMooToolsは、コアからIFrame wrapper classを使用することをお勧め

、あなたはその後のようなものを行うことができます答えを

var context = this.document, // window 
    iframe = document.getElement("iframe") 

// if iframe found, change context to its contentDocument 
iframe && (context = new IFrame("foo").contentDocument) 

// wrapper. 
!function() { 
    console.log(this.getElements("div")) 
}.call(context) 
+0

おかげで、私はJSコードが位置していることを意味しましたiframeの内側にあります。私はそれがなぜ自分のものではなく親のコンテキストで動いているのか理解できません。 –

関連する問題