我运行一个获取变量的脚本,例如屏幕尺寸。
我想让这些变量可用于以后的脚本,以根据它们的内容构建内容。
因此,我在页面顶部运行脚本,最后在脚本中创建一个新的脚本部分并吐出变量。
问题是在第一个变量之前有一个未定义的标记,我不明白为什么?
这是代码:
// Create the element
var script = document.createElement("script");
script.innerHTML = '';
// build content
//variable_list += "var screen_width="+sw+";\n";
//variable_list += "var screen_height="+sh+";";
// Add script content
script.innerHTML = variable_list;
// Append
document.head.appendChild(script);
在DOM中看起来像这样会导致错误:
<script>
undefinedvar screen_width=357;
var screen_height=505;
</script>
有更好的方法吗?
答案 0 :(得分:4)
我怀疑是因为在您开始追加空字符串之前,您尚未将variable_list
初始化为空字符串。声明
variable_list += ...
相当于
variable_list = variable_list + ...
如果您在运行该语句之前尚未初始化variable_list
,那么它将具有值undefined
,当与另一个字符串连接时,它将自身字符串化为{{1}并且连接成结果字符串。
要解决此问题,请在第一次连接之前添加以下语句:
"undefined"