我最近一直在做一个新方法,这对调试很有帮助,但我最近发现它只适用于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 回答
最终,Chrome和Safari都可以加载blob,但最后他们不能在url参数上加上问号 .
这将有效:
这不会