2011-03-27 88 views
5

可以通过字符串获得外部脚本的内容吗?相当于myInlineScript.textContent的东西?获取外部脚本的源代码?

这种情况是,我刚开始进入WebGL和所有的教程,我发现商店着色器为嵌入式<script type="x-shader/x-foo">标签。元素本身并不重要,但是 - 着色器是由纯字符串创建的。这些很容易通过.textContent从内联脚本中提取,但我当然更愿意将我的代码与我的标记分开。

是否有一些等价物用于获取外部脚本的源代码/内容?对DOM文档和Google搜索的快速扫描并没有产生任何启发。

更新

的WebGL着色是不是一个巨大的问题 - 有一些在Javascript中获得字符串的方式!但这并不是我唯一遇到过的问题script tags being used to inline non-scripts,并且对更好的方式感到好奇。

回答

2

如果它位于同一个域中,您可以对其执行正常的ajax请求,并将该文件作为字符串取回。这适用于任何类型的文本文件。

另外,我对WebGL并不熟悉,但是如果着色器位于外部文件中,那么我认为“x-shader”脚本类型只是将它们内联的一种方法。否则,它只是一个你传递给某个方法的字符串。所以不要过多地想这个。

+0

是啊,我目前正在将着色器存储为[多行字符串](http://stackoverflow.com/questions/1589234/whats-the-cleanest-way-to-write-a-multiline-string-in -javascript)在我的JS,但额外的cruft正在窃听我。我昨天晚上想到了AJAX并拒绝了它,但今天早上我想不出为什么。我会把问题留出一段时间,但这可能是我最终要做的。 – 2011-03-27 16:16:28

+0

您想要来自同一主机上某个外部文件的字符串。这正是AJAX请求的目的。 – 2011-03-27 18:39:44

+0

我特别感兴趣的是检查已经链接到页面中的外部脚本的源代码。在我的情况下,我可以用AJAX调用替换外部脚本,但在一般情况下,这会导致额外的服务器命中。所以我的问题解决了,但我的好奇心并未得到满足。 ;-) – 2011-03-28 17:58:57