gpt4 book ai didi

javascript - 为什么将注释的开头向下移动一行空格会破坏此 JavaScript 代码在 WordPress 中的编译?

转载 作者:行者123 更新时间:2023-11-28 08:06:44 25 4
gpt4 key购买 nike

我必须使用 WordPress 来处理这个特定的页面,而且我不会认为 WordPress 存在错误,但也许这只是 JavaScript 的问题。为什么会编译:

    var pData = jQuery.parseJSON(pData);
var strInnerHTML = "";
/*
for (var i = 0; true; i++) {
var obj = pData[i.toString()];
if (obj) {
strInnerHTML += '<option value="' + obj.key + '">' + obj.value + '</option>\n';
} else {
break;
}
}
alert(strInnerHTML.slice(0, strInnerHTML.length - 2));
document.getElementById("selectNations").innerHTML = strInnerHTML.slice(0, strInnerHTML.length - 2);*/

但事实并非如此:

    var pData = jQuery.parseJSON(pData);
var strInnerHTML = "";

/*for (var i = 0; true; i++) {
var obj = pData[i.toString()];
if (obj) {
strInnerHTML += '<option value="' + obj.key + '">' + obj.value + '</option>\n';
} else {
break;
}
}
alert(strInnerHTML.slice(0, strInnerHTML.length - 2));
document.getElementById("selectNations").innerHTML = strInnerHTML.slice(0, strInnerHTML.length - 2);*/

编辑

这是第一个完整的示例。在第一个示例中,我可以看到 alert("spam"); 在加载页面时被执行,但在第二个示例中却看不到:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript">
// A text file had to be used, since WordPress wouldn't let me upload a JSON file.
alert("spam");
jQuery.get("someJSONFileInTheFormOfATextFile", function(pData) {
var pData = jQuery.parseJSON(pData);
var strInnerHTML = "";
/*
for (var i = 0; true; i++) {
var obj = pData[i.toString()];
if (obj) {
strInnerHTML += '<option value="' + obj.key + '">' + obj.value + '</option>\n';
} else {
break;
}
}
alert(strInnerHTML.slice(0, strInnerHTML.length - 2));
document.getElementById("selectNations").innerHTML = strInnerHTML.slice(0, strInnerHTML.length - 2);*/
});
</script>

最佳答案

知道发生了什么事情。那天晚上,当我第一次开始使用 WordPress 时,我注意到页面编辑屏幕上的文本/HTML 标签会尝试在您的代码中查找换行符,并在您背后在它们周围添加自己的代码。他们认为这“方便又简单”。嗯,这个原则显然延伸到了 script 标签内的 JavaScript。如果您在 JavaScript 中执行此操作:

var x = 0;
var y = 0;

for (var i = 0; i < 50; i++) {

然后 WordPress 会尝试在完成页面上的空白行及其周围插入额外的字符,而不会告诉您。这会破坏你的 JavaScript 代码。解决此问题的一种方法是在您计划将行留空的任何位置插入 //:

var x = 0;
var y = 0;
//
for (var i = 0; i < 50; i++) {

这会让 WordPress 或多或少地远离你。在问题的第二个示例中,有第一个示例中不存在的空行。

关于javascript - 为什么将注释的开头向下移动一行空格会破坏此 JavaScript 代码在 WordPress 中的编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24718034/

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