包括一个 JavaScript 文件,因为它是在脚本标记中编写的
Include a JavaScript file as it was written in a script tag
我有一些html,在脚本标签中包含了一堆JS代码。所以我把它移到了一个单独的.js文件中。
JS代码还从CGI加载了一些变量,使用<%ejGet(var)%>
形式的字符串。但是在将代码与 HTML 文件分离后,字符串不会替换为服务器中的数据。
没有办法包含JS文件,就好像它是写在脚本标签中的一样,或者有没有另一种方法可以做到这一点?
<script language="javascript">
<!-- hide
var syncNvram = '<%ejGetWl(wlSyncNvram)%>';
...about 1000 lines more...
</script>
因此,将此代码移动到单独的文件后,变量不会加载。
问题是您的<% ejGetWl(wlSyncNvram) %>
在发送到浏览器之前由某个模板或处理引擎在服务器上执行,因此浏览器实际上看到了输出,例如
var syncNvram = 'abcdefg';//或任何输出
你真正要问的问题是,我的服务器端模板/处理引擎可以处理javascript文件而不是html文件吗?
答案是,这取决于模板/处理引擎,但总的来说,这是一个坏主意。JS文件应该保持静态资产,原因有很多(破坏代码,通过CDN分发等)
更好的办法是将它们分开:
<script>var syncNvram = '<%ejGetWl(wlSyncNvram)%>';</script>
<script src="myfile.js"></script>
单独声明。
更好的可能是使用 ajax 来获取它,但这是一个完全不同的架构,可能不适合这里。
为此,您需要从CGI程序生成脚本。
<script src="/cgi-bin/example.js.cgi"></script>
当然,这将是一个不同的CGI程序,因此将变量置于正确的状态可能会有问题。
通常,您将使用不同的方法解决问题:将数据包含在文档中(在脚本元素中或元素(如<meta>
元素、隐藏输入或相关内容的data-*
属性)中,然后让静态脚本从 DOM 读取数据。
相关文章:
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 将图像从后台页面传递给内容脚本javascript
- 按键上的 Indesign 脚本 (javascript)
- 谷歌脚本javascript中的谷歌函数=importhtml解析问题
- 脚本 JavaScript 宽度忽略了 iPhone 6.为什么
- ASP.NET MVC Razor 渲染脚本 JavaScript
- 预热脚本 JavaScript
- 工作时间脚本 javascript
- 延迟或阻止加载,直到 PHP 脚本/JavaScript 完全执行
- 在独立脚本上运行的函数在另一个脚本Javascript node.js上不起作用
- 跨域脚本javascript请求
- 直接从参考中学习ecma脚本/javascript
- 谷歌脚本/javascript |为什么getRange返回2D数组
- 通过内容脚本 - javascript 将文本动态注入 facebook 的共享对话框
- 我需要以下脚本(JavaScript)的帮助
- 从c#页面方法调用客户端脚本(javascript,jquery等)
- 链接打开时运行脚本- Javascript
- 如何从外部脚本JavaScript回调返回
- 瞄准类内部的类,启动脚本- Javascript/jQuery
- Adobe illustrator脚本(JavaScript)初学者问题