2008-11-07 2 views
2

Я затягиваю наш рекламный код, переместив его на внешний скрипт jQuery, но, очевидно, мне все еще нужен HTML-код для таргетинга объявления. Поэтому мне было интересно, могу ли я настроить таргетинг на элемент noscript (или внутри элемента noscript), так как мне все равно придется оставить это на странице, или мне нужно, чтобы какой-то другой элемент для JavaScript был нацелен?Поддерживает ли noscript браузеры с поддержкой javascript?

<noscript> 
    <div class="ad"><a href="foo"><img src="bar" alt="ad" /></a></div> 
</noscript> 

Мое намерение состояло в том, чтобы изменить или снять элемент noscript.

ответ

6

<noscript> Содержимое не отображается только при активном JS, оно, по-видимому, также отсутствует в DOM. Я попытался получить доступ к контенту внутри области <noscript> (надеясь, что вы сможете сделать это с помощью jQuery и вставить его в другое место), но ничего не получил.

1

Если в браузере включен javascript, содержимое внутри элемента no-script НЕ отображается.

Вам нужно будет установить его вне этого для таргетинга на javascript и использовать раздел NoScript для своей цели, пользователи без включенного JavaScript.

+0

Я понимаю причину для noscript, и я не искал, было ли оно отображено, или было ли оно доступно для DOM. Когда я просматриваю свой обработанный источник с помощью веб-разработчика, я вижу, что элемент все еще существует, поэтому мой вопрос о том, доступен ли он для таргетинга. – 2008-11-07 15:47:32

+0

Я понимаю, но использование его как источника контента или цели для обновленного контента с помощью JS не является лучшей практикой или даже предлагаемой. – 2008-11-07 16:14:35

0

Вы всегда можете использовать JS, чтобы скрыть это объявление с помощью CSS, если ничего другого.

2

Зачем нужен элемент noscript? Если вы просто собираетесь удалить или заменить его разными элементами при запуске javascript, тогда div действует так же, как и элемент noscript.

+0

noscript отобразит, если нет поддержки JS, что я должен рассмотреть. Итак, ноктрипр всегда будет там. Если есть поддержка JS, я мог бы использовать контент. – 2008-11-07 15:49:41

+0

Точно. Поэтому просто оставьте тег без сценария и если Javascript что-то делает с ним, а не наоборот. – 2008-11-07 15:54:22

+0

точно моя точка, спасибо kouPhax – philnash 2008-11-07 15:56:59

1

Большинство браузеров не позволят вам нацелить элемент noscript, даже если вы (неправильно) присвоили ему идентификатор. Вы можете попробовать что-то вроде http://dev.opera.com/articles/view/replacing-noscript-with-accessible-un/ - это стандартный совместимый метод для достижения того же конца, но без тега noscript.

3

Вы можете прицелиться в носктментные элементы.

<noscript>asdfasFSD</noscript> 

    <script> 
     alert(document.getElementsByTagName("noscript")[0].innerHTML); 
    </script> 

Это работает в FF3, IE6 и Google Chrome. Он будет предупреждать asdfasFSD для меня.

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