2010-08-02 3 views
3

У меня есть страница на сайте ASP.net, где у меня есть несколько заполнителей контента, теги скриптов с функциями JavaScript и другие элементы. Я скрываю всех держателей контента и другие элементы html с помощью JavaScript, кроме div, который я хочу отобразить. Но я получаю другие скрипты, запущенные на этой странице. Как я могу удалить их?Удалите ненужный JavaScript с помощью JavaScript

Любые идеи?

Edit1

Давайте рассмотрим я на следующую страницу

<html> 
<head> 

    <script type="text/javascript"> 
     alert("unnecessary script") 
    </script> 

</head> 
<body> 

    <script type="text/javascript"> 
     alert("another one") 
    </script> 

    <div id="div1"> 
     Div 1</div> 
    <div id="div2"> 
     Div 2</div> 
    <div id="div3"> 
     Div 3</div> 

    <script type="text/javascript"> 
     alert("one more") 
    </script> 

</body> 
</html> 

Я загрузить эту страницу в плавающем фрейме на другую страницу, где в кадре OnLoad() я называю HideUnneededHTML() который скрывает все, кроме div2. Как я могу удалить ненужный Javascript, прежде чем он загрузится?

+0

Удалить что? Элементы сценария после их загрузки? Можете ли вы показать код? –

+0

Re ваше обновление: Хм. Я не думаю, что вы можете, потому что сценарий должен быть * выгружен *, и любые изменения, сделанные им, откат. Есть ли шанс избавиться от них на стороне сервера? –

ответ

1

Одна вещь, которую вы можете попробовать, - переназначить ненужную функцию (ы) на новую функцию, которая ничего не делает. Вследствие этого функции Javascript являются объектами первого класса, поэтому им может быть присвоено новое значение. Это не приведет к удалению строк с вашей страницы, но это сделает функции бесполезными. Если вы хотите временно отключить их, назначьте их значение другой переменной, а затем переназначьте их. Вы всегда можете переключить их обратно на значение, сохраненное в другой переменной.

<script type="text/javascript"> 
    function myAmazingFunction(){ 
     alert("Does Something"); 
    } 
</script> 

позже ...

<script type="text/javascript"> 
    myAmazingFunction = function(){}; 

    //Now, call it... 
    myAmazingFunction(); 
</script> 

Это безопасно, потому что это означает, что любой другой код, который называет эти функции не будут вызывать ошибки - они просто не будут делать ничего.

Дайте мне понять, как вы справляетесь.

Редактировать: Я подтвердил, что этот подход должен работать. Здесь я переключаю функцию с «Что-то», «Что-то еще» и обратно.

<script type="text/javascript"> 
    function myAmazingFunction() { 
     alert("Does Something"); 
    } 
    myAmazingFunction(); 
    var temp = myAmazingFunction; 
    myAmazingFunction = function() { alert("Does Something Else"); }; 
    myAmazingFunction(); 
    myAmazingFunction = temp; 
    myAmazingFunction(); 
</script> 

результаты в 3 коробки предупреждения в следующем порядке:

Does Something 
Does Something Else 
Does Something 
Смежные вопросы