gpt4 book ai didi

javascript - 不同 '<script>' 标签中的相同变量不会发生冲突吗?

转载 作者:行者123 更新时间:2023-11-28 01:41:03 27 4
gpt4 key购买 nike

我想在不同的 <script> 中使用相同的变量代码块不会发生冲突。我的代码大致如下:

<html>
<head>
<script type="text/javascript">
ad = document.getElementById('sidebar1-ad');

if (ad.getBoundingClientRect().width) {
adWidth = ad.getBoundingClientRect().width;
} else {
adWidth = ad.offsetWidth;
}

...
</script>

<script type="text/javascript">
ad = document.getElementById('article-footer-ad');

if (ad.getBoundingClientRect().width) {
adWidth = ad.getBoundingClientRect().width;
} else {
adWidth = ad.offsetWidth;
}

...
</script>
</head>

<body> ... </body>
</html>

问题是,变量adadWidth在第二个代码块中似乎优先。

有没有办法可以在不同的 <script> 中使用相同的变量名页面中的标签没有任何一个标签覆盖另一个标签?如果是这样,怎么办?

最佳答案

如果您可以更改脚本主体,只需将代码包装到匿名函数并立即调用它即可。另外,您需要使用 var 关键字来限制变量范围。

<script>
(function() {

var ad = document.getElementById('article-footer-ad');

// your code here ...

})(); // <-- this is an immediate call
</script>

此外,如果每个 block 中的代码相同,请考虑将其重构为单个函数并在其他代码块中使用

<script>
// Common function

function renderAd(adId) {

var ad = document.getElementById(adId);

}
</script>
...
<script>
renderAd('sidebar1-ad');
</script>
...
<script>
renderAd('article-footer-ad');
</script>

关于javascript - 不同 '&lt;script&gt;' 标签中的相同变量不会发生冲突吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20924401/

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