使用 require js 将 crossorigin 属性添加到脚本标签
add crossorigin attribute to script tag with require js
这是我的问题,
我用 requirejs 调用了很多脚本,其中一个(而且只有一个)我需要添加 crossorigin 属性以使我的脚本调用看起来像那样
<script type="text/javascript" charset="utf-8" async
data-requirecontext="_" data-requiremodule="myModule"
src="cdn.moduleUrl" crossorigin="anonymous"></script>
我已经在文档、google 和 Whosebug 上进行了搜索,但找不到任何回复。
P.S.: 我使用 requirejs 2.3.5
好的,所以我最终找到了解决我问题的 "proper" 方法,在要求代码中,您有一个 未记录的选项 onNodeCreated
来设置回调在 dom 上插入脚本标签之前,使用这段代码,我实现了我的目标!
require.config({
paths: {
'myModule': 'cdn.moduleUrl'
},
attributes: {
"myModule": {
crossorigin: "anonymous"
}
},
onNodeCreated: function(node, config, name, url){
if(config.attributes && config.attributes[name]){
Object.keys(config.attributes[name]).forEach(attribute => {
node.setAttribute(attribute, config.attributes[name][attribute]);
});
}
}
});
这是我的问题, 我用 requirejs 调用了很多脚本,其中一个(而且只有一个)我需要添加 crossorigin 属性以使我的脚本调用看起来像那样
<script type="text/javascript" charset="utf-8" async
data-requirecontext="_" data-requiremodule="myModule"
src="cdn.moduleUrl" crossorigin="anonymous"></script>
我已经在文档、google 和 Whosebug 上进行了搜索,但找不到任何回复。
P.S.: 我使用 requirejs 2.3.5
好的,所以我最终找到了解决我问题的 "proper" 方法,在要求代码中,您有一个 未记录的选项 onNodeCreated
来设置回调在 dom 上插入脚本标签之前,使用这段代码,我实现了我的目标!
require.config({
paths: {
'myModule': 'cdn.moduleUrl'
},
attributes: {
"myModule": {
crossorigin: "anonymous"
}
},
onNodeCreated: function(node, config, name, url){
if(config.attributes && config.attributes[name]){
Object.keys(config.attributes[name]).forEach(attribute => {
node.setAttribute(attribute, config.attributes[name][attribute]);
});
}
}
});