Является ли действительный HTML важным после загрузки страницы? - PullRequest
4 голосов
/ 14 сентября 2011

Я прочитал статью, в которой предлагалось обойти метод, который не является строго допустимым (target="_blank"), применяя правила после загрузки страницы через javascript.

Мне кажется, что это большой случай использования буквызакон, чтобы победить дух закона, но я не хочу критиковать, прежде чем знать, действительно ли это проблема.Есть ли что-то в проверке кода, которая имеет значение только перед выполнением каких-либо сценариев?

Ответы [ 3 ]

2 голосов
/ 14 сентября 2011

Постарайтесь сделать свою страницу максимально достоверной. Вы не делаете это действительным для W3, но для своих пользователей. Неверный HTML должен быть исправлен браузером для отображения. Каждый браузер может делать это по-своему, поэтому неправильная разметка может (теоретически) привести к тому, что ваша страница будет выглядеть по-разному в каждом браузере.

Если вы добавите разметку из JavaScript, она будет столь же недействительной, что и с той же степенью риска. Единственное, что вы сделали, это обманули валидатор W3, потому что он не будет выполнять Javascript. Фактически, он тестирует другую страницу, которую не увидят ваши пользователи. Если вы это сделаете, ваша проверка бесполезна.

Тем не менее, я считаю, target="_blank" работает практически в любом браузере, поэтому, если он вам действительно нужен, и вы не можете изменить тип документа, то вам просто придется смириться с одной ошибкой, которую вы получите валидатор.

И опять же, сама разметка выглядит нормально (без пропущенных элементов, все хорошо экранировано и заключено в кавычки), так что это всего лишь один атрибут, который может игнорироваться браузером. В худшем случае браузер будет игнорировать цель. Теоретически браузер может не отображать страницу, но в этом случае это маловероятно.

1 голос
/ 14 сентября 2011

Я видел много ошибок javascript, исчезающих из-за исправления неверной разметки.Все, что должно анализировать страницу (javascript, css и т. Д.), Получит действительную разметку.Я часами наблюдал, как другие разработчики работают над проблемами js, ругая различия между IE и браузером, только чтобы отследить их и исправить проблему, исправив разметку и удалив их дерьмо только для IE.Я думаю, правильная разметка очень важна.

Я думаю, что самая важная разметка - наличие правильных иерархий - правильное закрытие тегов div и over.Атрибут target, вероятно, не испортит вас, но я бы сказал, что все равно делайте это правильно.Когда вы начинаете добавлять исключения из правил, вы находитесь на скользком склоне.

1 голос
/ 14 сентября 2011

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

Я лично верю, что если вам нужно сделать target="_blank", просто вставьте его в html при загрузке страницы и не полагайтесь на то, что JS сделает это, это кажется просто глупым.

...