gpt4 book ai didi

javascript - IE 中的 Element.appendChild() ..解决方法? (与innerText与textContent相关)

转载 作者:行者123 更新时间:2023-12-01 16:52:50 26 4
gpt4 key购买 nike

我听说使用el.innerText||el.textContent可能会产生不可靠的跨浏览器结果,因此我正在遍历 DOM 树以递归方式收集文本节点,并将它们写入 HTML 正文中的标签中。

此脚本的作用是从 window.location 读取哈希子字符串值并将其写入 HTML

此脚本在 Chrome 和 Firefox 中适用,但在 IE 中令人窒息

我使用如下 URL 语法调用该页面:

http://example.com/pagename.html#dyntext=FOO&dynterm=BAR&dynimage=FRED
<小时/>

更新更新更新

解决方案:

我将脚本移至 </body> 之前(它们应该在的地方)然后删除 console.log(sPageURL);现在它可以在 Chrome、Firefox、IE8 和 IE9 中运行

当您只是放置文本而不是获取文本时,这是我针对 insideText 与 textContent 跨浏览器问题的解决方法。在本例中,从 window.location 获取哈希子字符串值并将其写入页面。

<html>
<body>

<span id="dyntext-span" style="font-weight: bold;"></span><br />
<span id="dynterm-span" style="font-style: italic;"></span><br />
<span id="dynimage-span" style="text-decoration: underline;"></span><br />

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>

<script>
$(document).ready(function() {
var tags = ["dyntext", "dynterm", "dynimage"];
for (var i = 0; i < tags.length; ++i) {
var param = GetURLParameter(tags[i]);
if (param) {
var dyntext = GetURLParameter('dyntext');
var dynterm = GetURLParameter('dynterm');
var dynimage = GetURLParameter('dynimage');
}
}

var elem = document.getElementById("dyntext-span");
var text = document.createTextNode(dyntext);
elem.appendChild(text);
var elem = document.getElementById("dynterm-span");
var text = document.createTextNode(dynterm);
elem.appendChild(text);
var elem = document.getElementById("dynimage-span");
var text = document.createTextNode(dynimage);
elem.appendChild(text);
});

function GetURLParameter(sParam) {
var sPageURL = window.location.hash.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++) {
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam) {
return sParameterName[1];
}
}
}

</script>

</body>
</html>
<小时/>

最终更新

如果您的哈希子字符串值需要空格(例如,包含三个单词的语言短语),则使用 + 分隔单词。 URI 中的字符,并替换 unicode \u002B创建每个文本节点时带有空格的字符,如下所示:

var elem = document.getElementById("dyntext-span");
var text = document.createTextNode(dyntext.replace(/\u002B/g, " "));
elem.appendChild(text);
var elem = document.getElementById("dynterm-span");
var text = document.createTextNode(dynterm.replace(/\u002B/g, " "));
elem.appendChild(text);
var elem = document.getElementById("dynimage-span");
var text = document.createTextNode(dynimage.replace(/\u002B/g, " "));
elem.appendChild(text);

现在形成您的 URI,如下所示:

http://example.com/pagename.html#dyntext=FOO+MAN+CHU&dynterm=BAR+HOPPING&dynimage=FRED+IS+DEAD

最佳答案

当代码中有 console.log() 时,您必须在 IE 中打开开发工具。缺少 head 元素也可能会导致一些问题。或者仅在这篇文章中缺少它?

关于javascript - IE 中的 Element.appendChild() ..解决方法? (与innerText与textContent相关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224739/

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