首页 文章

Chrome和Safari不接受Blob作为脚本src参数

提问于
浏览
0

我最近一直在做一个新方法,这对调试很有帮助,但我最近发现它只适用于Firefox .

代码示例如下 . 在Firefox上运行时,“Hello World”会收到警报 . 在Safari和Chrome中运行时,会出现404的blob . 这段代码在片段中不会像在html文件中那样做,所以我在下面列出了明文 .

<script>

function includeScript(script) {

  var file = new Blob([script], {
    type: "text/javascript"
  });
  var url = URL.createObjectURL(file);

  var addMe = document.createElement("script");
  addMe.src = url + "?test";
  addMe.type = "text/javascript";

  document.head.appendChild(addMe);
}

function tryIt() {
  includeScript("alert('hey'); foo.bar");
}
</script>


<body>
  <button onclick="tryIt()">Try It</button>
</body>

为什么Chrome和Safari会为blob返回404,有没有办法让我绕过它?

我确保在Firefox上启用了本地strict_orgin_policy,它仍然有效,所以我不认为这是本地资源问题 . 此外,如果在Chrome中的控制台中完成,blob可以正常工作 .

1 回答

  • 0

    最终,Chrome和Safari都可以加载blob,但最后他们不能在url参数上加上问号 .

    这将有效:

    <script src="blob:123123123123">
    

    这不会

    <script src="blob:123123123123?arg1=hat">
    

相关问题