我正在尝试在加载页面时将脚本注入头部,其中我必须在脚本中提供页面名称。 下面是我如何在ts文件中实现它。
**var head = document.getElementsByTagName('head')[0];
var tag = document.createElement("script");
tag.type = 'text/javascript';
tag.innerHTML = "var DDO = {} DDO.pageData = {'pageName': " + pageUrl + "} ";
head.appendChild(tag);**
正在注入脚本,但是在控制台选项卡中引发了错误。
错误:VM3741:1未捕获的语法错误:appendChild处的标识符意外
答案 0 :(得分:1)
tag.innerHTML =“ var DDO = {} ; DDO.pageData = {'pageName':” + pageUrl +“}”; 定义变量DDO后缺少分号, 以及您从何处注入pageUrl,请确保已定义变量。
尝试在外部文件中包含脚本,并在内部html中定义的脚本中出现错误的情况下,对该脚本进行注入,并对该文件进行刷新
答案 1 :(得分:1)
尝试一下
var head = document.getElementsByTagName('head')[0],pageUrl="somevalue";
var tag = document.createElement("script");
tag.type = 'text/javascript';
tag.textContent = "var DDO = {}; DDO.pageData = {'pageName': '" + pageUrl + "'} ";
head.appendChild(tag);
要删除以前的脚本元素
var script = head.childNodes[0]; //get previous script element
head.removeChild(script); //removing script
您还没有为keyPageName的值提供单引号
答案 2 :(得分:0)
正确答案:
var head = document.getElementsByTagName('head')[0];
var tag = document.createElement('script');
tag.type = 'text/javascript';
tag.id = 'adobedatalayer';
tag.textContent = 'var DDO = {}; DDO.pageData =' + JSON.stringify(pageinfo);
var script = document.getElementById('adobedatalayer');
if (script != null) {
head.removeChild(script);
}
head.appendChild(tag);