2012-01-05 6 views
1

<body>タグの付いていないサイトで次のJavaScriptを実行したい場合は、<framesets>のドキュメントをネストします。フレームセット内にhtmlタグがあるhtmlページではJavascriptが動作していないようです

document.onclick= function(event) { 
    if (event===undefined) 
     event= window.event; 
    var target = 'target' in event ? event.target : event.srcElement; 
    alert("clicked"); 
}; 

私が扱っていたHTML文書は、私はこのようなものを見たことがないよう、非常に奇妙です。とにかく、JavaScriptは実行されませんが、エラーメッセージは表示されません。 Firebugは、/ html/frameset/frame/html/body/div/a全体ではなく、HTML xPathのみを返します。したがって、フレームセットタグを持つことに問題があることがわかります。注:私はテストするはずのターゲットサイトを制御できません。

<html> 
    <head> 
     <title>weird site...</title> 
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="IE=EmulateIE8" http-equiv="X-UA-Compatible"> 
    </head> 
    <frameset frameborder="0" border="0" framespacing="0" cols="*,796,*"> 
     <frame scrolling="no" noresize="noresize" src="/main/left.php" name="links" style="background-color: transparent;"> 
      <html> 
       <body> 
        <div> 
         <a>text</a> 
        </div> 
        .... 
       </body> 
      </html> 
     </frame> 
     <frameset frameborder="0" border="0" framespacing="0" rows="58,*"> 
      <frame scrolling="no" noresize="noresize" marginheight="0" marginwidth="0" src="/main/top.php" name="oben" style="background-color: transparent;"> 
       <html> 
        <body>....</body> 
       </html> 
      </frame> 
      <frameset frameborder="0" border="0" framespacing="0" cols="116,680"> 
       <frame scrolling="no" noresize="noresize" marginheight="0" marginwidth="0" src="/main/login.php" name="persoenliches" style="background-color: transparent;"></frame> 
       <frame scrolling="auto" noresize="noresize" marginheight="0" marginwidth="0" src="/main/index.php" name="mitte" style="background-color: transparent;"></frame> 
      </frameset> 
     </frameset> 
     <frame scrolling="no" noresize="noresize" src="/main/right.php" name="heartbeat"></frame> 
     <noframes></noframes> 
    </frameset> 
</html> 

答えて

1

ここで、Javascriptコードを入力していますか?別々のフレームは独立したページで、別々のwindows(グローバル変数)とdocumentsを含んでいるので、イベントハンドラを1か所に書くことはできず、すべての人で動作すると期待できます。

+0

FirebugのConsoleタブでjsコードを実行しています。一度にすべてのフレームのすべてのドキュメントにアクセスする方法はありますか? xpathでフレームにアクセスすることは可能ですか? '/ html/frameset/frame/html/body/a' – KJW

+0

通常のXPathを使ってiframeにアクセスすることはできません。フレームに着いたら、移動する前にドキュメントを別のステップで取得する必要があります。また、JSが親フレームと同じドメインから来たものである場合にのみ、JSがフレーム内を覗くことができるという問題があります。 – hugomg

関連する問題