连接HTMLScriptElement

时间:2014-08-08 10:06:53

标签: javascript

鉴于我有以下内容:

var el, main;

main = _.findWhere(this.widget.snippets, {
  name: "main"
});

el = document.createElement("script");

el.setAttribute("data-require", value.name + "@*");

el.setAttribute("data-semver", a.semver);

el.setAttribute("src", a.scripts);

console.log(el + main.body);
/*
  [object HTMLScriptElement]
  <div bb-breadcrumb></div>
  <div bb-content></div>
 */

我正在尝试将新创建的脚本附加到我的身体上。但它继续返回[object HTMLScriptElement]是不是有一种方法可以将其转换为字符串,然后允许我进行连接。

进一步更新:

var main的值是一个如下所示的对象:

$$hashKey: "018"
body: "<div breadcrumb></div>↵<div content></div>↵"
file_extension: "html"
file_name: "main"
isEdited: false
name: "main"

所以有了这个。您将看到我创建了一个<script></script>元素,其输出为:

<script data-require=​"jquery@*" data-semver=​"2.1.1" src=​"/​/​cdnjs.cloudflare.com/​ajax/​libs/​jquery/​2.1.1/​jquery.min.js">​</script>​

现在,在我最初提供的代码示例的末尾,我想连接该标记并将其附加到main.body,因此最终输出将如下所示:

<script data-require=​"jquery@*" data-semver=​"2.1.1" src=​"/​/​cdnjs.cloudflare.com/​ajax/​libs/​jquery/​2.1.1/​jquery.min.js">​</script>​
  <div breadcrumb></div> 
  <divcontent></div>

1 个答案:

答案 0 :(得分:2)

如果main.body是一个字符串,则无法将对象连接到它。但是,您可以使用新创建的元素的.outerHTML属性,即HTML表示形式:

el = document.createElement("script");
el.setAttribute("data-require", value.name + "@*");
el.setAttribute("data-semver", a.semver);
el.setAttribute("src", a.scripts);
main.body = el.outerHTML + main.body;
console.log(main.body)

输出:

<script data-require="jquery@*" data-semver="2.1.1" src="/​/​cdnjs.cloudflare.com/​ajax/​libs/​jquery/​2.1.1/​jquery.min.js"></script><div bb-breadcrumb></div>↵<div bb-content></div>↵ 

See it on JSFiddle