JavaScript require在HTML中不起作用



我正在编写涉及JS代码的HTML代码。在一个简单的示例下:

<!DOCTYPE html PUBLIC >
<html>
<body>
<h2>Use JavaScript to Change Text</h2>
<p>This example writes "Hello JavaScript!" into an HTML element with id="demo":</p>
<p id="demo"></p>
<script>
    var net     = require('net');
    var sleep   = require('sleep');
    var element = document.getElementById("demo");
    element.innerHTML = "Hello JavaScript!";
    sleep(1)
</script> 

不幸的是"你好javascript!"当我使用浏览器浏览上述文件时,不会出现。查看在调试控制台内部,我可以看到循环消息:

ReferenceError: require is not defined

因此,似乎在HTML代码中未定义需求,但我已经写了一个小的test.js文件:

var net = require('net');
var sleep = require('sleep');
sleep.sleep(1)

然后我用

运行它
node test.js.

没有错误,一切正常,都可以使用,也可以睡眠和网。为什么HTML文件中的代码不起作用?

javascript与node.js

不同

require((不是JavaScript标准的一部分,并且不受开箱即用的浏览器支持,而是Node.js模块系统。

您可能需要直接包含模块;某些模块可能在浏览器沙盒上下文中不起作用。

另外,诸如http://browserify.org/之类的工具可能很有用。

您获得 ReferenceError: require is not defined的原因是,在您的html页面中没有任何地方都需要。要求不带您的标准JavaScript库。您必须在页面上包含文件,以便可以加载并使用。

这可以通过简单地在<head><body>标签中添加<script src="myJS.js"></script>来完成。myJS.js文件当然将被require.js文件代替。

使用节点运行时它可以工作的原因是因为节点已经有自己的模块加载器。

最新更新