gpt4 book ai didi

javascript - 脚本标签中的自定义属性

转载 作者:搜寻专家 更新时间:2023-11-01 05:05:45 24 4
gpt4 key购买 nike

我可以在 script 标签中使用自定义属性吗,例如:

<script type="text/javascript" mycustomattribute="foo">
// JavaScript
</script>

然后使用包含的 JavaScript 访问 mycustomattribute 的值?

最佳答案

Can I use a custom attribute in a script tag such as:

是的,使用 data-* attributes :

<script data-info="the information"...

And then use the contained javascript to access the value of 'mycustomattribute'?

是的,可能吧。如果你给 script 标签一个 id,你可以可靠地做到这一点:

var info = document.getElementById("theId").getAttribute("data-info");

否则,您必须对脚本标签做出假设。如果它总是在页面的标记中(不是稍后使用代码添加的),您可以这样做:

var scripts = document.getElementsByTagName("script");
var info = scripts[scripts.length - 1].getAttribute("data-info");

那是因为如果脚本标签在标记中,它会在遇到时立即运行(除非使用 async or defer [并且浏览器支持]),并且始终是页面上的最后一个脚本标签(位于那个时间点)。但是,如果代码 later 添加脚本标记,使用 createElementappendChild 或类似的,你不能依赖它。

这是一个完整的例子:Live Copy

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Data on Script Tags</title>
</head>
<body>
<script>
function display(msg) {
var p = document.createElement('p');
p.innerHTML = String(msg);
document.body.appendChild(p);
}
</script>
<script data-info="first">
(function() {
var scripts = document.getElementsByTagName("script");
var info = scripts[scripts.length - 1].getAttribute("data-info");
display("Got info '" + info + "'");
})();
</script>
<script data-info="second">
(function() {
var scripts = document.getElementsByTagName("script");
var info = scripts[scripts.length - 1].getAttribute("data-info");
display("Got info '" + info + "'");
})();
</script>
</body>
</html>

关于javascript - 脚本标签中的自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17769688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com