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>
FirebugのConsoleタブでjsコードを実行しています。一度にすべてのフレームのすべてのドキュメントにアクセスする方法はありますか? xpathでフレームにアクセスすることは可能ですか? '/ html/frameset/frame/html/body/a' – KJW
通常のXPathを使ってiframeにアクセスすることはできません。フレームに着いたら、移動する前にドキュメントを別のステップで取得する必要があります。また、JSが親フレームと同じドメインから来たものである場合にのみ、JSがフレーム内を覗くことができるという問題があります。 – hugomg