创建脚本块是未定义的

时间:2015-01-19 16:49:45

标签: javascript

我运行一个获取变量的脚本,例如屏幕尺寸。

我想让这些变量可用于以后的脚本,以根据它们的内容构建内容。

因此,我在页面顶部运行脚本,最后在脚本中创建一个新的脚本部分并吐出变量。

问题是在第一个变量之前有一个未定义的标记,我不明白为什么?

这是代码:

// 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>

有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

我怀疑是因为在您开始追加空字符串之前,您尚未将variable_list初始化为空字符串。声明

variable_list += ...

相当于

variable_list = variable_list + ...

如果您在运行该语句之前尚未初始化variable_list,那么它将具有值undefined,当与另一个字符串连接时,它将自身字符串化为{{1}并且连接成结果字符串。

要解决此问题,请在第一次连接之前添加以下语句:

"undefined"