我无法在angular4提交方法中动态包含一个javascript文件。我在下面解释我的代码。
onTextFormSubmit(){
this.processValidation = true;
if (this.textForm.invalid) {
return;
}
let urlValue = this.textForm.value;
let url = urlValue.url;
console.log('hello',url);
var script = document.createElement("SCRIPT");
script.setAttribute("type", "text/javascript");
script.setAttribute("src", url);
script.setAttribute('integrity', 'sha384-tEgmOghGBnPJQ3h63qzTE8V69SDVkIIyQeOFDfsG+AWJqA/UfZMmyQcXQVunl3wT');
script.setAttribute('crossorigin','anonymous');
document.getElementsByTagName("head")[0].appendChild(script);
}
此处url
参数来自表单提交,类似https://code.jquery.com/jquery-2.2.4.min.js
这个并且我动态地将其包含在内但是在我执行view page source
后提交并且搜索该文件不在{ {1}}标签,我没有发现那是我的问题。我需要动态地包含这个文件。
答案 0 :(得分:0)
我在我的环境中对它进行了测试,但也失败了。 我发现了以下错误:
无法在“完整性”中找到有效的摘要'属性 资源' https://code.jquery.com/jquery-2.2.4.min.js'用计算机 SHA-256完整性' BbhdlvQf / xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44 ='。该 资源已被阻止。
经过一番搜索,我发现这个git issue解决了它。
只需在脚本中添加以下属性:
script.setAttribute('integrity','');
修改强>
如果它还没有工作,请试试这个:
script.setAttribute('integrity','sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=');
script.setAttribute('crossorigin','anonymous');