2011-01-29 59 views
11

如何更改JavaScript中的HTML對象元素數據屬性值?如何更改javascript中的HTML對象元素數據屬性值

這裏是我努力

<object type="text/html" id="htmlFrame" style="border: none;" standby="loading" width="100%"></object> 

var element = document.getElementById("htmlFrame"); 
element.setAttribute("data", "http://www.google.com"); 
+0

你嘗試過什麼?什麼沒有用?你可以發佈你的HTML和JavaScript? – Oded 2011-01-29 10:23:57

回答

9

和jQuery中:

$('element').attr('some attribute','some attributes value') 

$('a').attr('href','http://www.stackoverflow.com/') 
33

這工作:

<html> 
<head></head> 
<body> 

<object type="text/html" id="htmlFrame" style="border: none;" standby="loading" width="100%"></object> 

<script type="text/javascript"> 
    var element = document.getElementById("htmlFrame"); 
    element.setAttribute("data", "attributeValue"); 
</script> 

</body> 
</html> 

如果你把它放進一個文件,請在有網絡瀏覽器,JavaScript的執行,並與「數據「屬性+值將被添加到對象元素。

注意:如果您只是查看HTML源代碼,您將看不到該屬性。這是因爲瀏覽器正在顯示Web服務器發送的靜態源,而不是動態呈現的DOM。要檢查DOM,請使用類似Firebug的工具。這將向您顯示瀏覽器呈現的DOM,並且您將能夠看到添加的屬性。

使用Firefox + Firebug或Google Chrome,您可以右鍵點擊頁面的一部分並執行「檢查元素」。這將調出渲染的DOM的視圖。

+0

我已經嘗試過那些,但沒有水果,你可以請你張貼樣品的例子,你已經測試了謝謝 – user587159 2011-01-29 10:37:02

1

主機的行爲對象<object>是由於ECMA262實現相關的,並設置由setAttribute()方法屬性可能會失敗。

我看到兩個解決方案:

  1. 軟:element.data = "http://www.google.com";

  2. 難:從DOM樹刪除對象,並創建新的一個與改變的數據屬性。

0

下面的代碼工作,如果你使用jquery

$("object").replaceWith('<object data="http://www.google.com"></object>'); 
0
document.getElementById("PdfContentArea").setAttribute('data', path); 

OR

var objectEl = document.getElementById("PdfContentArea") 

objectEl.outerHTML = objectEl.outerHTML.replace(/data="(.+?)"/, 'data="' + path + '"'); 
相關問題