繁体   English   中英

全部载入<script> tags from a different page

[英]Load all <script> tags from a different page

我将插入一个单独的页面(相同的域),并使用$.load将其拉入当前页面,如果我在整个页面上都这样做,那会很好,但我不是,我只是在做用于该页面中的JavaScript代码。 我想知道是否可以将所有脚本标记从所述页面加载到当前页面?

我目前正在使用以下代码:

var newMessageURL = $('#lnkCompose a').attr('href'); $('#hiddenScriptLoad').load(newMessageURL);

所述页面是否在同一域上,或者您可以访问该页面? 否则,您将遇到跨域来源策略的麻烦。 如果您有权访问,则唯一的方法是使用regex语句或html解析器来解析html并手动提取脚本。 不过,这听起来像是一种非常骇人听闻的方法,而且我不确定您为什么要这么做。

如果您有权访问,请获取页面内容,然后使用以下内容获取脚本标记源。

text.match( /<script src="scripts\/(.*?)\.scripts\.js"><\/script>/g )

Javascript正则表达式归功于脚本标记之间的src url

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;
    }

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM