在javascript中呼叫src

时间:2018-09-25 23:04:00

标签: javascript html src

我正在尝试使小部件正常工作,但是在页面加载后我需要调用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分解速度太快,所以我的函数无法运行并获取全局var并将其分配给rprAvmWidgetOptions var。

 <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” var,并且一切正常。所以我需要一些延迟。如果我可以从HTML内部调用src,那就太完美了。

2 个答案:

答案 0 :(得分:0)

您是否已将script放在head中?最好将其放在正文的末尾,以便允许HTML元素首先加载,然后执行脚本。

答案 1 :(得分:-1)

尝试在代码段中运行代码可能会有所帮助。

您可以通过单击<>图标在StackOverFlow上创建一个片段。

例如,这是HTML和JavaScript的简单片段:

console.log('hello, javascript')
<div>
Hello, HTML
<div>

请注意,您的HTML src应该指向带引号的字符串。