1

我有一个母版页和 30 个子页。在我的母版页中,我正在加载我的 29 个子页面所需的原型 js。

在第 30 个子页面上,我有可以加载 C3 和 D3 图表的 pivottable.js。PivotTable.js、C3.js、D3.js 与prototype.js 存在一些冲突,并且由于母版页具有原型js 引用,它们无法正常工作。

如果我从母版页中删除了prototype.js 引用,数据透视表将按预期工作,但其他需要原型js 的其他29 个页面无法正常工作。:-(

在第 30 页的脚本加载之前,有没有办法单独从第 30 个子页的母版页中删除原型引用?

希望得到答复。提前致谢。

4

1 回答 1

6

将您的 JavaScript 文件放入ContentPlaceHolder您的母版页中,如下所示。

//SCRIPTS THAT CAN LOAD ON ALL PAGES
<script type="text/javascript" src="..."></script>

<asp:ContentPlaceHolder runat="server" ID="critical_js_files">
    //SCRIPTS THAT YOU DO NOT LOAD ON SOME CHILD PAGES
    <script type="text/javascript" src="..."></script>        
</asp:ContentPlaceHolder>

在后面的母版页代码中,添加这个方法:

public void DisableCriticalJavaScriptFiles()
{
    critical_js_files.Visible = false;
}

最后,在您的第 30 个子页面或您不想加载这些 js 文件的任何页面的 Page_Load 方法中添加以下代码:

protected void Page_Load(object sender, EventArgs e)
{
    Master.DisableCriticalJavaScriptFiles();
    //REST OF THE PAGE_LOAD CODE
}

希望这可以帮助。

于 2017-01-07T10:36:56.763 回答