2017-01-07 5 views
0

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

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

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

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

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

ответ

3

Положите ваш 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 
} 

Надеется, что это помогает.

Смежные вопросы