javascript要求不在html中工作

时间:2018-04-24 21:39:03

标签: javascript html requirejs require

我正在编写涉及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> 

不幸的是#34; Hello JavaScript!&#34;使用浏览器浏览上述文件时,不会显示。查看调试控制台,我可以看到以下消息:

ReferenceError: require is not defined

所以似乎在html代码中没有定义require,但是我已经编写了一个小的test.js文件,如下所示:

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

然后我用

运行它
node test.js.

没有错误,一切正常,需要可用,睡眠和网络也是如此。为什么html文件中的代码不起作用?

2 个答案:

答案 0 :(得分:4)

Javascript与node.js

不同

require()不是JavaScript标准的一部分,开箱即用的浏览器不支持它,它是node.js模块系统。

您可能需要直接包含模块;某些模块可能无法在浏览器沙箱上下文中使用。

此外,http://browserify.org/等工具可能很有用。

答案 1 :(得分:1)

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

只需在<script src="myJS.js"></script><head>标记中添加<body>即可完成此操作。当然,myJS.js文件将替换为require.js文件。

与节点一起运行时它的工作原因是因为Node已经拥有自己的模块加载器。