2013-05-03 3 views
2

У меня есть сайт, на котором работает Sharepoint 2007. В главной странице SP 2007 нет DOCTYPE, поэтому он отображается в режиме quirks. У меня есть другой сайт, встроенный в iframe внутри Sharepoint. Этот сайт более современен - ​​HTML5 DOCTYPE и мета-IE-Edge, совместимый с X-UA.Какой режим отображает iframe внутри Sharepoint 2007 (так, режим quirks)?

Итак, я пытаюсь понять, в каком режиме отображать содержимое iframe, в различных браузерах IE.

Как я могу сказать, в < = IE8 родительский (Sharepoint) будет отображать в режиме quirks, а кадр будет отображаться в стандартном режиме. Это то, что я хочу.

Однако, в IE9 +, что произойдет? В приведенных ниже ссылках кажется, что мой кадр начнет рендеринг в режиме Quirks, что было бы плохо. Что, если я поставлю мета-IE8 совместимый с X-UA в главном роли Sharepoint, это даст мне стандартный режим в моем iframe?

Edit: В IE10, я тестировал различные конфигурации родителя (с DOCTYPE и без, так и с различной METAS) и получил следующие результаты:

  • IE10/доктайпа/нет меты: 10 Стандартов/10 не Стандарты
  • IE10/нет доктайпа/меты края: 10 стандартов/10 Стандарты
  • IE10/нет доктайпа/меты-9: 9 стандартов/9 стандартов
  • IE10/нет доктайпа/меты-8: 8 стандартов/8 стандартов
  • IE10/no doctype/meta 5 : 5 причуды/8 Стандарты
  • IE10/нет доктайп/нет мета: 10 причуды/10 Стандарты

Некоторые полезные ссылки:

IE иногда заставляет меня хотеть спрыгнуть с мост.

ответ

2

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

Это быстро страница Я сделал вверх даст вам информацию о совместимости вы после: http://stevesspace.com/test/quirks/modern.html

<!doctype html> 
<html> 
<head> 
    <meta http-equiv="X-UA-Compatible" content="IE=9" /> 
    <title>Inner page</title> 
    <style> 
     .pass 
     { 
      color: green; 
     } 
     .fail 
     { 
      color: red; 
      font-weight: bold; 
     } 
     #quirks-mode 
     { 
      color: #fff; 
      color: f00; 
     } 
     #not-quirks-mode 
     { 
      color: green; 
      color: fff; 
     } 
    </style> 
</head> 
<body> 
    <div>Quirks Mode: <span id="quirks-mode">true</span><span id="not-quirks-mode">false</span></div> 
    <div>Javascript: <span id="scripts-enabled" class="fail">false</span></div> 
    <div>Array map support: <span id="array-map" class="fail">false</span></div> 
    <hr /> 
    <div>Doc Mode: <span id="doc-mode"></span></div> 
    <div>Compat Mode: <span id="compat-mode"></span></div> 
    <hr /> 
    <div>SVG Circle should render below</div> 
    <svg> 
     <circle cx="50" cy="50" r="50" style="fill: green;"/> 
    </svg> 
</body> 
<script type="text/javascript"> 
    document.getElementById('doc-mode').innerHTML += document.documentMode; 
    document.getElementById('compat-mode').innerHTML += document.compatMode; 

    document.getElementById('scripts-enabled').innerHTML = 'true'; 
    document.getElementById('scripts-enabled').className = 'pass'; 

    if (Array.prototype.map) { 
     document.getElementById('array-map').innerHTML = 'true'; 
     document.getElementById('array-map').className = 'pass'; 
    } 
    </script> 
</html> 
Смежные вопросы