使用Javascript获取脚本文件的内容

vdh*_*ant 11 html javascript scripting dom

我的网页中有以下脚本元素:

<script src="default.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

使用JavaScript,我希望能够检索脚本文件的内容.我知道我可以使用ajax请求获取数据,但后来我从本地已有的服务器获取了一些东西.

所以我更喜欢做的是从DOM中检索内容(如果可能的话)或具有相同结果的内容.

干杯安东尼

UPDATE

我试图简化问题,也许是一个糟糕的想法,我认为这样会导致更少的问题.

我的实际情况如下,我实际上有

<script type="text/html" class="jq-ItemTemplate_Approval">
   ...
   html template that is going to be consumed by jQuery and jTemplate
   ...
</script>
Run Code Online (Sandbox Code Playgroud)

现在这工作正常,但这意味着每次页面加载我必须发送模板作为主页的html的一部分.所以我的计划是做以下事情:

<script src="template.html" type="text/html"></script>
Run Code Online (Sandbox Code Playgroud)

这意味着浏览器会缓存template.html的内容,我不必每次都发送它.但要做到这一点,我需要能够从文件中获取内容.

同样在这种情况下,据我所知,通过ajax请求内容并不会对此有所帮助,因为它必须返回服务器才能获取内容.

Hel*_*lgi 5

如果我理解正确,您不希望使用Ajax加载html模板文本,而是将其加载到页面的其余部分.如果您控制服务器端,您始终可以将模板文本包含在一个不可见的div标签中,然后从Javascript中引用该标签:

<div id="template" style="display:none;">
...template text...
</div>
<script>
// pops up the template text.
alert(document.getElementById("template").innerHTML);
</script>
Run Code Online (Sandbox Code Playgroud)

如果您只是想要加载模板以便缓存它,可以将内容放在如下变量中:

<script>
var template = "template text..";
</script>
Run Code Online (Sandbox Code Playgroud)

或者您可以使用ajax加载它并将模板存储在变量中,以便可以访问它.它在jquery中非常简单:

var template;
$.get("template.html", function(data){
  template = data;
});
Run Code Online (Sandbox Code Playgroud)


Rya*_*roi 2

我认为你想要做的是在 template.js 中分配一个变量。然后你就可以在 jquery 中的任何地方使用该变量了。就像是:

var tpl = "<div> ... </div>"
Run Code Online (Sandbox Code Playgroud)

对于您的问题来说,这不是一个更简单的解决方案吗?我们在 Ext JS 中执行此操作。我认为这对你在 jQuery 中有用。