【问题标题】:Cannot read property of NULL无法读取 NULL 的属性
【发布时间】:2017-04-04 17:49:50
【问题描述】:

我有以下 html 文件,我尝试在其中使用网络工作者突出显示一些代码:

<link rel="stylesheet" href="./highlight/styles/default.css">
<script src="./highlight/highlight.pack.js"></script>

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>

	if (typeof(Worker) !== "undefined") {

    	addEventListener('load', function() {
			var code = document.querySelector('#code');
			var worker = new Worker('worker.js');
			worker.onmessage = function(event) { code.innerHTML = event.data; }
			worker.postMessage(code.textContent);
		})
	
	} else {
	}


</script>


<pre><code>
// This is a generated file with many packages
`ifdef MACRO_1
`else
package pkg_1;
  typedef logic [1:0] t;
  typedef enum t {
      IDLE = 2'd0
    , ARMED = 2'd1
    , WRITE = 2'd2
    , BUSY = 2'd3
  } e;
</code></pre>

但我收到一条错误消息:Uncaught TypeError: Cannot read property 'textContent' of null (worker.postMessage(content.textContent));

有解决办法吗?

【问题讨论】:

  • 那么带有 ID code 的元素在哪里?
  • 下面?我想我可以以这种方式引用我在
     块中编写的代码。
  • 没有具有该 ID 的元素,只是一个标记名?
  • 你说得对,对不起,第一次写html/js。

标签: javascript html web-worker


【解决方案1】:

在代码元素上添加 id="code" 属性:https://jsbin.com/daqijafoca/edit?html,output

<link rel="stylesheet" href="./highlight/styles/default.css">
<script src="./highlight/highlight.pack.js"></script>

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>

    if (typeof(Worker) !== "undefined") {

        addEventListener('load', function() {
            var code = document.querySelector('#code');
            var worker = new Worker('worker.js');
            worker.onmessage = function(event) { code.innerHTML = event.data; }
            worker.postMessage(code.textContent);
        })

    } else {
    }


</script>


<pre><code id="code">
// This is a generated file with many packages
`ifdef MACRO_1
`else
package pkg_1;
  typedef logic [1:0] t;
  typedef enum t {
      IDLE = 2'd0
    , ARMED = 2'd1
    , WRITE = 2'd2
    , BUSY = 2'd3
  } e;
</code></pre>

【讨论】:

  • 谢谢伙计,这解决了错误,但我在我的突出显示文件中得到另一个错误:未捕获的语法错误:无效的正则表达式:/([À-ʸa-zA-Z_$][ À-ʸa-zA-Z_$0-9]*()?\s+)+[a-zA-Z_]\ w*\s*(/: 字符类范围乱序
  • 您可以在 Regex101 中看到您的错误并尝试修复它:regex101.com/r/Q85LiX/1。它发生在你的特殊字符上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-29
  • 2016-11-24
  • 2012-04-29
  • 2019-01-07
  • 2019-05-31
相关资源
最近更新 更多