Удалить JS SCRIPT со страницы MASTER на дочерних страницах

У меня есть главная страница и 30 дочерних страниц. На моей главной странице я загружаю прототип js, который необходим на моих 29 дочерних страницах.

На 30-й дочерней странице у меня есть файл pivottable.js, который загружает диаграммы C3 и D3. PivotTable.js, C3.js, D3.js имеют некоторые конфликты с prototype.js, и они не работают, так как главная страница имеет ссылку на js-прототип.

Если я удалил ссылку на prototype.js с главной страницы, сводная таблица будет работать, как и ожидалось, но остальные 29 других страниц, для которых требуется js-прототип, не будут работать.:-(

Есть ли способ удалить ссылку на прототип с главной страницы только на 30-й дочерней странице до загрузки сценариев на 30-й странице?

Надеясь на ответ. Заранее спасибо.

1 ответ

Решение

Поместите ваши файлы 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;
}

И, наконец, добавьте приведенный ниже код в ваш метод Page_Load на своей 30-й дочерней странице или на любую страницу, где вы не хотите загружать этот js-файл:

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

Надеюсь это поможет.

Другие вопросы по тегам