今日有暇,想试一把Html5之WebWorker,把代码download下来,想直接在本地玩玩, 在Firefox和Chrome中都不能用!? 但是看了看代码,貌似没有什么问题,就干脆Debug一把,正好看看究竟怎么回事?
# Symptom:
Chrome:
1. Uncaught Error: SECURITY_ERR: DOM Exception 18
在Chrome中调试一个使用Web Worker的程序时碰到SECURITY_ERR如下:
Firefox:
1. Failed to load script
worker.onerror = function(error) {
// error: Failed to load script xxx
}
2. assignment to undeclare variable xxx
# Solution I
Chrome
1. 启动Chrome的时候需使用"--allow-file-access-from-files"
start %localappdata%\Google\Chrome\Application\chrome.exe --allow-file-access-from-files
2. 不能使用Private Browsing模式,即”--incognito“
Firefox
1. Local file access
about:config --> security.fileuri.strict_origin_policy = false
2. assignment to undeclared variable
在Firefox的WebWorker所要Load的JavaScript文件,似乎不能有没有声明的局部变量,就类似与使用了"use strict",暂时在about:config中禁掉:
about:config --> javascript.options.strict = false
但是最好的还是把代码写的严谨一些,能主动使用"use strict"者更佳。
# Solution II
放弃本地执行吧,架一个简单Web服务器,就没啥问题了