Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展,基于异步获取的数据创建新选项卡_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript Chrome扩展,基于异步获取的数据创建新选项卡

Javascript Chrome扩展,基于异步获取的数据创建新选项卡,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在努力解决chrome.tabs.create()的行为问题 以下是我希望实现的目标:单击按钮后,应用程序可以获取一个URL,然后根据我们刚刚获取的messageUrl创建一个新选项卡 提前谢谢你 这是我的代码(不起作用) popup.html 打开一个随机url popup.js document.addEventListener('DOMContentLoaded',documentEvents,false); //获取URL并返回字符串(也是URL) 异步函数getMessag

我正在努力解决chrome.tabs.create()的行为问题

以下是我希望实现的目标:单击按钮后,应用程序可以获取一个URL,然后根据我们刚刚获取的
messageUrl
创建一个新选项卡

提前谢谢你

这是我的代码(不起作用)

  • popup.html

    
    打开一个随机url
    
  • popup.js

    document.addEventListener('DOMContentLoaded',documentEvents,false);
    //获取URL并返回字符串(也是URL)
    异步函数getMessageUrl(){
    const res=等待取数('https://dog.ceo/api/breeds/image/random');
    const json=await res.json();
    返回等待json['message'];
    }
    异步函数openImageUrl(){
    const messageUrl=wait getMessageUrl();
    创建({url:messageUrl});
    }
    函数documentEvents(){
    document.getElementById('myButton')。addEventListener('click',函数(){
    openImageUrl();
    });
    }
    

    • 坏消息:似乎无法在弹出窗口中等待异步调用。 好消息:你可以在后台脚本中等待它们,这样你就可以将你的函数移动到那里,然后像这样从弹出窗口调用它

      chrome.extension.getBackgroundPage().openImageUrl();
      

      document.getElementById('myButton')myButton在哪里?嗨@NadiaChibrikova,很抱歉这是一个打字错误。我已经修好了!