我正在使用 $ .load
挂钩到一个单独的页面(同一个域)并将其拉到当前页面,如果我在整个页面上这样做,那就没问题,但是我不是,我只是为该页面中的JavaScript代码而做。我想知道是否可以将所有脚本标签从所述页面加载到当前页面?
我目前正在使用以下代码:
&# xA;
 var newMessageURL = $('#lnkCompose a')。attr('href');

 $('#hiddenScriptLoad')。负载(newMessageURL); 代码>
答案 0 :(得分:0)
该网页是在同一个域上还是您可以访问它?否则,您将遇到跨域原始策略的问题。 如果您有访问权限,唯一的方法是使用正则表达式语句或html解析器解析html并手动拉取脚本。 这听起来像一个非常黑客的方法,我不确定你为什么要这样做。
如果您有权访问,请获取页面内容,然后使用以下内容获取脚本标记源。
text.match( /<script src="scripts\/(.*?)\.scripts\.js"><\/script>/g )
答案 1 :(得分:0)
var newMessageURL = $('#lnkCompose a').attr('href');
$('#hiddenScriptLoad').load(newMessageURL);
上面的代码会加载你在第二个文件中的所有内容,它也会导入你在那里的任何javascript代码。但是,您在第二个文件中拥有的代码将不起作用,除非您使用函数调用或以任何其他方式从第一页调用它们,否则不会采取行动。
如果您只想将js编码和html分开并将它们分成两个单独的文件,最好使用PHP将第二个文件导入第一个文件,这样,当页面加载到客户端浏览器,它将呈现它,因为它只是一个包含两个内容的文件。实施例..
<?php
include("script_file.js");
?>
如果你想要只得到第二个文件的js部分使用类似的东西
<?php
$Vdata = file_get_contents('path/to/YOUR/FILE.php');
preg_match_all("'<script(.*?)</script>'si", $Vdata, $match);
foreach($match[1] as $val)
{
echo $val;
}
?>