我试图让一个小部件工作,但我需要在页面加载后调用我的src,以便我的函数有时间运行,现在我有问题,我不能让它工作。我所需要的就是能够在函数完成后调用src。我附上了我的代码,抱歉太乱了,这是我第一次编码。
<script>
var hi = "3911 e Douglas loop"
var src1
function init() {
window.onmessage = (event) => {
hi = event.data;
src1 = "//www.narrpr.com/widgets/avm-widget/widget.ashx/script"
injectScript("//www.narrpr.com/widgets/avm-widget/widget.ashx/script")
}
}
var rprAvmWidgetOptions = {
Token: "742980EF-52EE-46F2-AEFB",
Query: hi,
CoBrandCode: "btso48",
ShowRprLinks: false
}
function injectScript(src) {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.async = true;
script.src = src;
script.addEventListener('load', resolve);
script.addEventListener('error', () => reject('Error loading script.'));
script.addEventListener('abort', () => reject('Script loading
aborted.'));
document.head.appendChild(script);
});
}
</script>
<script src = src1 > </script>
<body onload="init();" style="background-color:transpartnt;">
这是我实际需要的所有代码,除了,它没有,因为src锁得太快,所以我的函数不能运行并获取全局变量并将其分配给rprAvmWidgetOptions变量。
<head>
<script>
var hi = "3919 e douglas loop"
function init() {
window.onmessage = (event) => {
hi = event.data;
}
}
var rprAvmWidgetOptions = {
Token: "742980EF-52EE-46F2-AEFB",
Query: hi,
CoBrandCode: "btso48",
ShowRprLinks: false
}
</script>
</head>
<script src = "//www.narrpr.com/widgets/avm-widget/widget.ashx/script" >
</script>
<body onload="init();" style="background-color:transpartnt;">
因此,我需要稍后加载src,然后我的函数将分配"hi“变量,一切都将正常工作。所以我需要一些延迟。如果我能从HTML内部调用src,那就太好了。
发布于 2018-09-26 07:44:20
您在head
中放置script
了吗?最好将它放在正文的末尾,这样就可以先加载HTML元素,然后再执行脚本。
发布于 2018-09-26 07:14:35
尝试在代码片段中运行您的代码可能会有所帮助。
您可以通过单击<>图标在StackOverFlow上制作代码片段。
例如,下面是一个简单的HTML和JavaScript代码片段:
console.log('hello, javascript')
<div>
Hello, HTML
<div>
请注意,您的HTML src应该指向一个用引号括起来的字符串。
https://stackoverflow.com/questions/52507722
复制相似问题