从 .js 文件加载脚本

Posted

技术标签:

【中文标题】从 .js 文件加载脚本【英文标题】:Loading script from .js file 【发布时间】:2012-12-31 20:25:37 【问题描述】:

我正在尝试从 .js 文件加载 .htm 模板。但是 .htm 文件中存在一个脚本,该脚本在加载模板并且一切顺利时触发。

模板的外观如下。 testing.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>http://***.com/questions/6946559/jqgrid-please-help</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
       <script type="text/javascript" charset="utf-8">
            $(document).ready(function () 
                $('#example').dataTable(
                    "bProcessing": true,
                    "sAjaxSource": '/Home/GetData',
                    "sScrollY": "400px",
                    "sScrollX": "200px",
                    "bPaginate": false
                );
            );
        </script>

 </head>
<div id="dynamic">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
    <thead>
        <tr>
            <th >Date</th>
            <th >Name</th>
            <th >ProposalID</th>
            <th >Time</th>
               </tr>
    </thead>
    <tbody>
   </tbody>

</table>
</div>
</html>

这是加载模板的 .js 文件。

var iTabs = function () 
    return 
        Init: function () 

            var placeholder = $("#testtab");
            placeholder.setTemplateURL("/Templates/Home/testing.htm");

            placeholder.load("/Templates/Home/testing.htm");


        
    
 ();

但是,现在我想在 .js 文件中执行 .htm 脚本,即在加载模板之后。 如果我只运行脚本的一部分,即

$('#example').dataTable(
                        "bProcessing": true,
                        "sAjaxSource": '/Home/GetData',
                        "sScrollY": "400px",
                        "sScrollX": "200px",
                        "bPaginate": false
                    );

在 .js 文件中,它不会工作。是否可以在 .js 文件中运行此脚本?如果有怎么办?

【问题讨论】:

【参考方案1】:

尝试使用load的回调运行该js代码

像这样:

placeholder.load("/Templates/Home/rpt.htm", function() 
  $('#example').dataTable(
                    "bProcessing": true,
                    "sAjaxSource": '/Home/GetData',
                    "sScrollY": "400px",
                    "sScrollX": "200px",
                    "bPaginate": false
                );
);

欲了解更多信息,refer to the jQuery load docs

【讨论】:

它给我带来了错误哎呀!您正在查看的页面不存在。 :( 我们不能像先加载网格然后渲染数据那样单独加载吗? 您正在查看的页面不存在 = 提供的路径错误...尝试使用它,例如 Templates/Home/rpt.htm./Templates/Home/rpt.htm 是的,我会检查它,我想知道一件事。这将在加载文档时触发。如果我需要在单击按钮时显示数据怎么办?万一怎么办?

以上是关于从 .js 文件加载脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何从Node.js中的URL加载外部js脚本

MariaDB node.js 脚本在尝试将数据从本地 XML 文件加载到表中时抛出 ER_LOCAL_INFILE_WRONG_FILENAME 错误

原生JS动态加载JSCSS文件及代码脚本

原生JS动态加载JSCSS文件及代码脚本

vue.js 从 cdn 加载脚本,然后组件 vue(没有 webpack)

Javascript外部脚本加载异常