ColdFusion9 Принудительный порядок тегов <META> в <HEAD>

O

oempay

#1
Всем здравствуйте. Столкнулся со странной проблемой рендеринга ColdFusion, которую я не могу обойти. А именно, когда я пытаюсь указать режим совместимости (с использованием механизма рендеринга IE9) на странице, использующей объекты ColdFusion (CFPOD, CFLAYOUT, CFFORM и т. д.), интерпретатор CF добавляет несколько библиотек JavaScript перед моими мета-тегами. в блоке . Проблема в том, что если не является первой строкой кода в блоке , она будет игнорироваться, и IE отображает страницу в Режим совместимости с IE7, который, как я обнаружил, потенциально более ужасен, чем IE6 (не думал, что это возможно)! Удаление объектов CF со страницы корректно отображает HTML в режиме совместимости с IE9. К сожалению, мне нужны эти объекты CF для проекта, над которым я работаю. Вот пример кода...

Предварительно отрисованный код:

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[URL='https://wmlogs.com/yti/dk55kdGRodHRwOi8vdzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbCh52']http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/URL]">
<HTML XMLNS="[URL='https://wmlogs.com/yti/b0hh0bWxodHRwOi8vdzMub3JnLzE5OTkveGvkT']http://www.w3.org/1999/xhtml[/URL]"> <HEAD> <script type="text/javascript"> _cf_loadingtexthtml="<img alt=' ' src='/CFIDE/scripts/ajax/resources/cf/images/loading.gif'/>"; _cf_contextpath=""; _cf_ajaxscriptsrc="/CFIDE/scripts/ajax"; _cf_jsonprefix='http://'; _cf_clientid='884342D5DD92B59E09FAA8AED19BFA39'; </script> <script type="text/javascript" src="/CFIDE/scripts/ajax/messages/cfmessage.js"></script> <script type="text/javascript" src="/CFIDE/scripts/ajax/package/cfajax.js"></script> <link rel="stylesheet" type="text/css" href="/CFIDE/scripts/ajax/resources/cf/cf.css" /> <script type="text/javascript" src="/CFIDE/scripts/ajax/yui/yahoo-dom-event/yahoo-dom-event.js"></script> <script type="text/javascript" src="/CFIDE/scripts/ajax/yui/animation/animation-min.js"></script> <script type="text/javascript" src="/CFIDE/scripts/ajax/ext/adapter/yui/ext-yui-adapter.js"></script> <script type="text/javascript" src="/CFIDE/scripts/ajax/ext/ext-all.js"></script> <script type="text/javascript" src="/CFIDE/scripts/ajax/package/cflayout.js"></script> <link rel="stylesheet" type="text/css" href="/CFIDE/scripts/ajax/resources/ext/css/ext-all.css" /> <!--- Begin custom tags (which I really want to be at the top ---> <META HTTP-EQUIV="X-UA-Compatible" CONTENT="ИЕ=9"> <!--- This MUST be first in the <head> block or it will be ignored ---> <TITLE>ColdFusion app title</TITLE> </HEAD> <BODY> <!--- Code using CFPOD, CFLAYOUT, CFFORM, etc. ---> </BODY>
</HTML>

Код (разметка): код в том виде, в котором он визуализируется ColdFusion при попадании в браузер:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[URL='https://wmlogs.com/yti/dk55kdGRodHRwOi8vdzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbCh52']http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/URL]"> <HTML XMLNS="[URL='https://wmlogs.com/yti/b0hh0bWxodHRwOi8vdzMub3JnLzE5OTkveGvkT']http://www.w3.org/1999/xhtml[/URL]"> <HEAD> <!--- Begin custom tags (which I really want to be at the top ---> <META HTTP-EQUIV="X-UA-Compatible" CONTENT="ИЕ=9"> <!--- This MUST be first in the <head> block or it will be ignored ---> <TITLE>ColdFusion app title</TITLE> </HEAD> <BODY> <!--- Code using CFPOD, CFLAYOUT, CFFORM, etc. ---> </BODY> </HTML>
Код (разметка): кто-нибудь знает, есть ли способ заставить код JavaScript CF позиционироваться в конце блока или способ переместить мою строку совместимости вверх, перед CF JS. код?

Я попробовал использовать тег, но он помещает только то, что я ввел в параметр «TEXT» внизу блока , что еще хуже.

Любая помощь приветствуется.
 
R

RikaRika

#2
Я бы все равно сказал, что если причина, по которой вы хотите это сделать, состоит в том, чтобы сначала получить эту ерунду X-UA, просто исправьте CSS и разметку вместо того, чтобы вставлять туда эту ерунду X-UA. Если вам нужно принудительно включить режим совместимости IE, проблема НЕ в том, что вам следует решать принудительно в режиме совместимости!

Исправьте остальную часть кода, не добавляйте в него этот неряшливый хак. На самом деле, если вы не можете довести код до такой степени, чтобы он работал без X-UA, с ним происходит что-то УЖАСНО неправильное.
 
I

ivaann

#3
Во-первых, зачем ты вообще используешь эту ерунду X-UA? Это существует ТОЛЬКО для того, чтобы сообщить IE, что код страницы засасывает пресловутую лошадь низкого роста - если вам «нужна» эта мета, вы, вероятно, делаете что-то ужасно и ужасно НЕПРАВИЛЬНО со своей разметкой (или CSS).

Во-вторых, хотя браузеры не чувствительны к регистру, СПЕЦИФИКАЦИЯ существует с момента появления HTML 4, Джо запрещает вам следовать спецификации...

В-третьих, если бы у меня был сайт с таким количеством скриптов в , я бы схватил 30-06 со стены и перетащил его за дровяной сарай, чтобы придать ему вид Old Yeller.

Ну, если быть честным, если бы у меня была страница с таким количеством отдельных скриптов, размещенных на одном домене...

У вас есть транссексуальный документ, может быть, пришло время надеть штаны большого мальчика и перестать писать веб-сайты, как будто сейчас 1997 год? Даже когда версия 4 (и X1.0) была новой, tranny предназначался для устаревших страниц, чтобы использовать новые функции, а НЕ для написания новых страниц. У меня возникает подозрение, что остальная часть вашего сайта, вероятно, представляет собой HTML 3.2, маскирующийся под XHTML.

Наконец... вау, люди ВСЕ ЕЩЕ используют Coldfusion? Я думаю, то, как он ссыт повсюду с бессмысленными сценариями и тарабарщиной разметки, НАКОНЕЦ-ТО отвратило бы людей от использования этой дымящейся кучи... ой, подождите, дымящиеся кучи, кажется, в порядке вещей с «современными» практиками перетаскивания все возвращается к ХУДШЕМУ из 1990-х, так что CF отлично сочетается с Codeignitor, laravel, turdpress, bootcrap, YUI и всей другой идиотской неумной ерундой «как не создавать веб-сайты», которую используют люди.
 
D

dimik2

#4
Ребята, я здесь не для того, чтобы участвовать в спорах о том, какой язык лучше. С тех пор, как я начал программировать, я работал с более чем 20 языками, и в конце концов все они работают по принципу «если/то/иначе». Существуют ли «лучшие» языки? Конечно. Но это то, что использует клиент, и нет смысла это обсуждать, поскольку клиент не вносит изменения легко и разумно (как я упоминал в предыдущем посте).

Итак... я ищу кого-то, кто является гуру CF (если он еще здесь), кто знает, есть ли способ изменить порядок автоматически генерируемых ссылок на сценарии JS в блоке . Если вы не таковы, вам не нужно отвечать и, пожалуйста, избавьте меня от элитарной чуши на тему «wh0z d4 b3tt3r c0d3z h4xx0r». Это не более чем троллинг, простой и понятный, и да, совершенно бесполезный.

Спасибо.
 
S

scoobydoo1

#5
Понятия не имею, но есть и другие проблемы - среди них то, что HTML-теги пишутся строчными буквами. Без исключений. (Ну... !DOCTYPE объявление в верхнем регистре.

Почему вы вообще используете переходный формат XHTML в качестве типа документа? Вы где-нибудь анализируете XML? Если нет, удалите его и используйте вместо него тип документа HTML 5:

Что касается объектов и использования ColdFusion, то я даже заморачиваться не буду. Отбросьте CF и используйте что-нибудь полезное.
 
C

compmaster74

#6
Отрицательно – по всем трем.
  1. HTML НЕ чувствителен к регистру. Период. Абсолютно никакой разницы нет и никогда не было. Я UCase весь свой код, потому что никто другой этого не делает, и когда другие неизбежно изменяют мой код, не сообщая мне об этом, что приводит к сбою процесса, у меня есть мгновенное доказательство того, что это был кто-то другой. За прошедшие годы это имело огромное значение в решении проблем атрибуции, и они никогда этого не замечают, пока не становится слишком поздно и их не загоняют в угол за взлом кода. Делает так, что никто, кроме меня, не может сказать: «Это был не я».
  2. В моей среде есть старые браузеры, которые необходимо учитывать и поддерживать совместимость. Полной поддержки HTML 5 и CSS 3 не существует. Черт, клиент совсем недавно отказался от IE6 в качестве корпоративного стандарта в пользу IE8. На некоторых рабочих станциях даже установлен IE10! FireFox существует, но только для целей разработки (с использованием FireBug). Хотел бы я полностью отказаться от IE в пользу более качественного браузера? Определенно да. Могу я? Нет. Правила игры.
  3. «Отбросить CF»? Действительно бесполезно, но спасибо за попытку.
Следующий?
 
К

клим1

#7
1. Если вам приходится участвовать в подобных сражениях, используйте правильную систему управления версиями.
2. При чем здесь старые браузеры? ЛЮБОЙ браузер может использовать Doctype HTML 5. Это просто упрощает задачу и обеспечивает правильный рендеринг в идиотских браузерах (IE, я смотрю на вас).
3. Да, это полезно, поскольку CF — это раздутая, отсталая штука и использует нестандартные конструкции (что, как я теперь понимаю, вероятно, и является причиной использования XHTML-doctype для создания пользовательских тегов).

Как я уже сказал, отбросьте крушение поезда и используйте правильный код.
 
Get involved!

Here you can only see a limited number of comments. On СЕО Форум Вебмастеров you see all comments and all functions are available to you. To the thread