Javascript 是否可以部分使用外部.js文件?

Javascript 是否可以部分使用外部.js文件?,javascript,html,dom,Javascript,Html,Dom,我有一个令人费解的情况(至少对我来说是令人费解的) 有一个由外部网站创建的外部文件“file.js”: 其中包含以下代码: var sText= "dynamic value here"; document.write(sText); 所以基本上这个网站每N分钟重新创建一次这个文件,为人们提供将这个js文件中的值合并到他们的网站中的方法 <script src="http://external-website.com/file.js"></script> 但是

我有一个令人费解的情况(至少对我来说是令人费解的)

有一个由外部网站创建的外部文件“file.js”:

其中包含以下代码:

var sText= "dynamic value here";
document.write(sText);
所以基本上这个网站每N分钟重新创建一次这个文件,为人们提供将这个js文件中的值合并到他们的网站中的方法

<script src="http://external-website.com/file.js"></script>

但是

我只需要变量sText。我不想让这个脚本执行
document.write(sText)
,因为这会弄乱我的DOM(如果我理解正确的话)。理想情况下,如果这个文件有一行
var sText=“dynamic value here”,我会很高兴


有没有办法使用这个JS,但不要让它执行
文档。write

当执行
文档。write
时,您可以通过fireBug或任何其他类似程序,检测通过
文档生成的Div呈现的类或ID。write

您必须重写渲染div的类或ID,并将其设置为
display:none
显示:无!重要的在样式文件中。

我认为这将解决您的问题,而无需触及JS文件。

您可以将脚本解析为AST,然后从变量定义节点提取字符串。看

首先定义外部脚本文件,如下所示:

<script type="text/x-ignore_me" src="http://external-website.com/file.js"></script>
您可以在
sTextContent
变量中找到
sText
的内容(在您的示例中是“此处的动态值”)


作为参考,您可以找到Uglify.js解析器文档。

可能重复的dupe有一些不正确或无用的答案,但Eric、Noah、gregers和Karl的答案可能会有用。一个黑客解决方案是临时替换
文档。使用自定义回调编写
。如果您真的只需要文件中的一个变量,您可以通过ajax获取脚本文本并解析出所需的数据;您还可以在服务器“代理”脚本中执行此操作。非您编写的脚本的部分运行看起来几乎不可能@Blender建议看起来也不错。@Tommi:AJAX请求可能因同源策略而无法工作。
var code = $("script[type='text/x-ignore_me']").text();
var ast = UglifyJS.parse(code);
var sTextContent = ast.body[0].definitions[0].value.print_to_string();
alert( sTextContent );