相关疑难解决方法(0)

Web工作者没有单独的Javascript文件?

据我所知,Web worker需要在一个单独的JavaScript文件中编写,并像这样调用:

new Worker('longrunning.js')
Run Code Online (Sandbox Code Playgroud)

我正在使用闭包编译器来组合和缩小我的所有JavaScript源代码,而我宁愿不必将我的worker放在单独的文件中进行分发.有办法做到这一点吗?

new Worker(function() {
    //Long-running work here
});
Run Code Online (Sandbox Code Playgroud)

鉴于第一类函数对JavaScript至关重要,为什么执行后台工作的标准方法必须从服务器加载整个'其他JavaScript文件?

javascript web-worker

279
推荐指数
9
解决办法
7万
查看次数

为什么Web Worker不能直接调用函数?

我们可以像HTML5一样使用HTML5中的web worker:

var worker = new Worker('worker.js');
Run Code Online (Sandbox Code Playgroud)

但为什么我们不能称这样的函数?

var worker = new Worker(function(){
    //do something
});
Run Code Online (Sandbox Code Playgroud)

html5 web-worker

28
推荐指数
2
解决办法
1万
查看次数

使用JavaScript将HTML转换为数据:text/html链接

这是我的HTML:

<a>View it in your browser</a>
<div id="html">
    <h1>Doggies</h1>
    <p style="color:blue;">Kitties</p>
</div>
Run Code Online (Sandbox Code Playgroud)

如何使用JavaScript来使href我的链接点的属性base64编码的网页,其来源是innerHTMLdiv#html

我基本上想要在这里完成相同的转换(选中base64复选框),但在JavaScript中除外.

html javascript url base64 data-uri

25
推荐指数
1
解决办法
6万
查看次数

从Chrome扩展程序内容脚本创建Web Worker

我正在尝试从我的扩展程序的内容脚本创建一个Web Worker,但它被SecurityError(相同的源策略)阻止.最好的方法是什么?

从我的内容脚本:

var workerURL = chrome.extension.getURL("js/searchWorker.js");
var lunrWorker = new Worker(workerURL);
Run Code Online (Sandbox Code Playgroud)

从清单:

"content_scripts": [
   {
     "matches": ["http://localhost:8000/*"],
     "js": ["js/jquery.min.js", "js/jquery.highlight.js", "js/index.js"],
     "css": ["css/bootstrap.css", "css/styles.css"]
   }
 ]
Run Code Online (Sandbox Code Playgroud)

我也尝试在我的清单中设置它,但它没有帮助:

"content_security_policy": "default-src 'none'; style-src 'self'; script-src 'self';",
Run Code Online (Sandbox Code Playgroud)

(旁注:CSS没有被注入页面,我不确定这是否是同一问题的症状或无关)

javascript web-worker google-chrome-extension

11
推荐指数
1
解决办法
4576
查看次数

从字符串创建 js 函数,无需 eval 和 new Function()

是否有任何替代解决方案可以从字符串 var 创建 js 函数,除了eval()出于Function constructor 安全原因我不允许使用这两种方法。

当你使用 js 代码创建 DOM 元素并添加到页面时,我知道解决方案,但这绝对是肮脏的黑客行为。非常感谢您的帮助。

====

添加

我收到了带有“a === b”、“!a”、“(a && b) || c”等字符串的 json 数据...(数百种组合)。需要创建并返回可以执行此比较功能的函数。

某物

var test = function ('a === b') {
  //some code without eval and new Function()
}
// in console
test('aa', 'bb') // return false
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

6
推荐指数
1
解决办法
2060
查看次数

使用部分文件生成JavaScript文件哈希值

我正在使用JavaScript来生成唯一文件值的文件哈希值。请检查下面的代码,以了解效果良好的哈希生成机制。

<script type="text/javascript">
// Reference: https://code.google.com/p/crypto-js/#MD5
function handleFileSelect(evt) 
{   
    var files = evt.target.files; // FileList object
    // Loop through the FileList and render image files as thumbnails.
    for (var i = 0, f; f = files[i]; i++) 
    {
        var reader = new FileReader();
        // Closure to capture the file information.
        reader.onload = (function(theFile) 
        {
            return function(e) 
            {
                var span = document.createElement('span');
                var test = e.target.result;                 
                //var hash = hex_md5(test);
                var hash = CryptoJS.MD5(test);
                var elem = document.getElementById("hashValue");
                elem.value = hash; …
Run Code Online (Sandbox Code Playgroud)

javascript php hash md5 cryptojs

3
推荐指数
1
解决办法
1263
查看次数

对 Web Workers 的 Javascript 功能检测模块支持

从 Chrome 80 开始,您可以使用 来创建模块类型的工作器new Worker("worker.js", { type: "module" }),然后使用import工作器脚本中的模块功能。然而,其他浏览器仍在为此提供支持,因此使用它需要功能检测和回退。

是否有一种方便简单的方法来为工作人员提供检测模块支持?

注意在某些平台(例如 Cordova)上创建工作线程实际上并不简单,并且涉及大量变通方法,因此在纯 JS 中工作的东西将是理想的。

javascript web-worker browser-feature-detection es6-modules

1
推荐指数
1
解决办法
330
查看次数