1
我想在沒有<body>
標記的站點上運行以下JavaScript,並且它由嵌套文檔的<framesets>
組成。JavaScript似乎不適用於框架集內的html標籤的html頁面
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 xPath,而不是整個/ html/frameset/frame/html/body/div/a,所以我可以看到有框架標籤存在一些問題。注意我無法控制我應該測試的目標站點。
<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的控制檯選項卡中運行js代碼。有沒有辦法一次訪問所有幀的所有文檔?有可能通過xpath訪問一個框架? '/ html/frameset/frame/html/body/a' – KJW 2012-01-05 19:36:55
我不認爲你可以使用普通的XPath來訪問這樣的iframe。在進入框架之後,您需要在繼續前單獨獲取文檔。此外,還有一個問題,即只有在來自與父框架相同的域時,才允許您的JS在框架內窺視。 – hugomg 2012-01-05 19:43:17