簡體   English   中英

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

[英]How to change HTML Object element data attribute value in javascript

如何在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");

這有效:

<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>

如果你把它放在一個文件中,在它上面打開一個Web瀏覽器,javascript就會執行,並且“data”屬性+值將被添加到object元素中。

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

使用Firefox + Firebug或Google Chrome,您可以右鍵單擊頁面的一部分並執行“檢查元素”。 這將顯示渲染的DOM的視圖。

在jquery中:

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

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

在JavaScript中,您可以通過Element.dataset為數據屬性賦值。

例如:

avatar.dataset.id = 12345;

參考: https//developer.mozilla.org/en/docs/Web/API/HTMLElement/dataset

document.getElementById("PdfContentArea").setAttribute('data', path);

要么

var objectEl = document.getElementById("PdfContentArea")

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

主機對象<object>的行為是由於依賴於ECMA262實現,而setAttribute()方法的set屬性可能會失敗。

我看到兩個解決方案:

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

  2. hard:從DOM樹中刪除對象並創建具有已更改數據屬性的新對象。

如果您使用jquery,以下代碼可以正常工作

$( "object" ).replaceWith('<object data="http://www.google.com"></object>');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM