2012-01-10 132 views
16

我使用對象標籤來加載html頁面內的html代碼片段。如何從對象標籤獲取html元素?

我的代碼如下幾行內容:

<html><object data="/html_template"></object></html>

由於頁面加載一些元素對象的標記之間添加後的預期。 我想獲得這些元素,但我似乎無法訪問它們。

我已經試過這些下面 $("object").html()$("object").children()$("object")[0].innerHTML

無似乎工作。是否有另一種方式來獲得這些元素?

編輯:

更詳細的例子:

考慮這個

<html><object data="http://www.YouTube.com/v/GGT8ZCTBoBA?fs=1&hl=en_US"></object></html>

如果我試圖讓我得到一個空字符串對象中的HTML。

http://jsfiddle.net/wwrbJ/1/

+0

'$(「object」)'返回一些東西嗎? – 2012-01-10 05:05:58

+0

如果我的猜測是正確的,你可能會使用IE瀏覽器? – AmGates 2012-01-10 05:11:10

+0

是$(「object」)返回一些東西。並且來吧我沒有使用IE – Noam 2012-01-10 05:34:43

回答

9

innerHTML將provid訪問哪些是在<object></object>之間的HTML。所要求的是如何讓對象加載的HTML在其生成的窗口/框架內(與開放和關閉標籤之間的代碼無關)。

我也在尋找答案,我恐怕沒有。如果我找到一個,我會回來把它張貼在這裏,但我現在正在尋找(而不是單獨)很多時間。

0

試試這個:

// wait until object loads 
$('object').load(function() { 
    // find the element needed 
    page = $('object').contents().find('div'); 
    // alert to check 
    alert(page.html()); 
}); 
+0

$('object')。contents()returns [] – Noam 2012-01-10 05:35:46

+0

$('object')。contents()是一個集合,您必須搜索該對象內的元素 – 2012-01-10 05:41:30

+1

嘗試使用:$('object')。contents()。find('html')。html(); – 2012-01-10 05:47:28

0

在這裏做了哪些工作代碼樣片。不知道你的代碼有什麼問題。

<html> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
      var k = $("object")[0].innerHTML; 
      alert(k); 
      $("object")[0].innerHTML = "testing"; 
     }); 
</script> 
<object data="/html_template">hi</object> 
</html> 
13

只要你將它放在同一個域,你可以做到以下幾點:

HTML

<html> 
    <object id="t" data="/html_template" type="text/html"> 
    </object> 
</html> 

的JavaScript

var t=document.querySelector("#t"); 
var htmlDocument= t.contentDocument; 
0

你可以使用下面的代碼讀取對象數據一旦它完全加載並且具有相同的域:

HTML-

<html> 
<div class="main"> 
<object data="/html_template"> 
</object> 
</div> 
</html> 

Jquery-

$('.main object').load(function() { 
    var obj = $('.main object')[0].contentDocument.children; 
    console.log(obj); 
}); 

希望這有助於!

-2

修訂

我用這行JavaScript來改變一個iFrame內提交了輸入的值,

document.getElementById('iframeID').contentWindow.document.getElementById('inputID').value = 'Your Value';

參考: https://stackoverflow.com/a/14451440/3452102

0

不,它不是可能有機會獲得跨源幀!