我真正需要的是像Firebug中的懸停元素這樣的功能,我們可以從中獲取選定的HTML。與iframe交互 - 獲取選定的HTML
在我們的程序中,我們將加載一個URL,並且該URL將在iFrame中打開。在這裏,我們想要懸停這些元素,並且當用戶點擊某個元素時,我們需要該特定元素的HTML源代碼。
所以:
- 你能互動(獲取懸停HTML)與內嵌框架,所以你得到的選擇HTML?
我真正需要的是像Firebug中的懸停元素這樣的功能,我們可以從中獲取選定的HTML。與iframe交互 - 獲取選定的HTML
在我們的程序中,我們將加載一個URL,並且該URL將在iFrame中打開。在這裏,我們想要懸停這些元素,並且當用戶點擊某個元素時,我們需要該特定元素的HTML源代碼。
所以:
這是你想要的東西。它將運行在一個名爲sourcecode的div中。
但是,如果需要,您可以將源代碼div放入iframe中。
<div class="sourceCode">
</div>
<script type="text/javascript">
(function ($) {
$.fn.outerHTML = function() {
return $(this).clone().wrap('<div></div>').parent().html();
}
})(jQuery);
$(document).ready(function() {
$("p,div").click(function() {
var thisobject = this;
var sourcecodes = $(thisobject).outerHTML();
sourcecodes = htmlEscape(sourcecodes);
$(".sourceCode").html(sourcecodes);
});
});
function htmlEscape(str) {
return String(str)
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>');
}
</script>
Short version:no。
實際上,您可以在iframe中運行的唯一腳本是加載在iframe中的頁面中的那些腳本。
如果你想做這樣的事情,有一種方法,但它並不漂亮。 您可以使用ajax請求來解析iframe中的頁面,然後將其加載到頁面中。 或者,您可以編寫一個重新創建整個iframe頁面的服務器端腳本,然後將您的界面添加爲疊加層。
沒有一個是漂亮的。責怪釣魚者,刮板和垃圾郵件發送者。
如果內容加載是跨域的,你不能與iFrame交互。 – ninja 2012-08-03 11:36:37