{"id":892,"date":"2012-01-18T18:59:16","date_gmt":"2012-01-18T17:59:16","guid":{"rendered":"http:\/\/blog.kodono.info\/wordpress\/?p=892"},"modified":"2012-01-18T20:10:53","modified_gmt":"2012-01-18T19:10:53","slug":"ie9-en-mode-standard-et-sharepoint-2003-bug-du-bouton-ok-sharepoint","status":"publish","type":"post","link":"https:\/\/blog.kodono.info\/wordpress\/2012\/01\/18\/ie9-en-mode-standard-et-sharepoint-2003-bug-du-bouton-ok-sharepoint\/","title":{"rendered":"IE9 en mode standard et Sharepoint&#8230; bug du bouton OK [Sharepoint]"},"content":{"rendered":"<p>[niveau expert]<\/p>\n<p>Si vous passez IE9 en mode standard avec Sharepoint vous risquez d&#8217;avoir le bouton OK des formulaires qui ne fonctionne plus&#8230; Apr\u00e8s avoir debuggu\u00e9 le bazar j&#8217;ai d\u00e9couvert qu&#8217;un des fichiers (&#8220;\/_layouts\/1033\/form.js&#8221;) Javascript utilise <code>document.frames()<\/code> au lieu de <code>document.frames[]<\/code>. Si cela fonctionne sur les anciens navigateurs, ce n&#8217;est plus le cas pour IE9 en mode standard, du coup il retourne un &#8220;Function expected&#8221;.<\/p>\n<p>Il y a deux fonctions incrimin\u00e9es <code>RTE_GetEditorIFrame()<\/code> et <code>RTE_DD_GetMenuFrame()<\/code>. Il suffit d&#8217;utiliser les commentaires conditionnels pour indiquer que lorsqu&#8217;on utilise IE9 alors on remplace ces deux fonctions par :<\/p>\n<pre class=\"brush: javascript\">function RTE_GetEditorIFrame(strBaseElementID)\r\n{\r\n\tvar ifmEditor=null;\r\n\tvar doc=document;\r\n\tif ((null !=doc.frames) &#038;& (doc.frames.length==0) &#038;& (doc.parentWindow.parent !=null))\r\n\t{\r\n\t\tdoc=doc.parentWindow.parent.document;\r\n\t}\r\n\tif ((null !=doc.frames) &#038;& (doc.frames.length > 0))\r\n\t{\r\n\t\tvar ifmContainer=doc.getElementById(RTE_GetEditorIFrameID(strBaseElementID));\r\n\t\tif (ifmContainer !=null)\r\n\t\t{\r\n\t\t\tifmEditor=doc.frames[RTE_GetEditorIFrameID(strBaseElementID)];\r\n\t\t}\r\n\t}\r\n\treturn ifmEditor;\r\n}\r\nfunction RTE_DD_GetMenuFrame()\r\n{\r\n\tvar ifmMenu=null;\r\n\tvar elemMenu=RTE_DD_GetMenuElement();\r\n\tif (null !=elemMenu)\r\n\t{\r\n\t\tif (document.frames.length > 0)\r\n\t\t{\r\n\t\t\tifmMenu=document.frames[g_strRTETextEditorPullDownMenuID];\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tif ((document.parentWindow !=null) &#038;& (document.parentWindow.frames !=null))\r\n\t\t\t{\r\n\t\t\t\tifmMenu=document.parentWindow.parent.document.frames[g_strRTETextEditorPullDownMenuID];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (null==ifmMenu)\r\n\t{\r\n\t\tif (g_fRTEFirstCallToGetMenu)\r\n\t\t{\r\n\t\t\tg_fRTEFirstCallToGetMenu=false;\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\treturn ifmMenu;\r\n}\r\n<\/pre>\n<p>Ainsi <code>document.frames<\/code> est bien appel\u00e9 comme un objet et non comme une fonction !<\/p>\n<p><strong>A noter cependant qu&#8217;il existe des tonnes de bugs avec IE9 et Sharepoint 2003\/2007. Il est donc conseill\u00e9 d&#8217;utiliser le mode de compatibilit\u00e9 en IE8<\/strong> si vous ne voulez pas passer des heures \u00e0 trouver l&#8217;origine des probl\u00e8mes et \u00e0 les corriger :<\/p>\n<pre class=\"brush: html\">&lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=8\"\/><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>[niveau expert] Si vous passez IE9 en mode standard avec Sharepoint vous risquez d&#8217;avoir le bouton OK des formulaires qui ne fonctionne plus&#8230; Apr\u00e8s avoir debuggu\u00e9 le bazar j&#8217;ai d\u00e9couvert qu&#8217;un des fichiers (&#8220;\/_layouts\/1033\/form.js&#8221;) Javascript utilise document.frames() au lieu de document.frames[]. Si cela fonctionne sur les anciens navigateurs, ce n&#8217;est plus le cas pour IE9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","hide_page_title":"","footnotes":""},"categories":[16,20,33,8],"tags":[18,127,24,154,155,158,117,148],"class_list":["post-892","post","type-post","status-publish","format-standard","hentry","category-navigateur","category-niveau-expert","category-programmation","category-windows","tag-ie","tag-ie9","tag-javascript","tag-navigateur","tag-niveau-expert","tag-programmation","tag-sharepoint","tag-windows"],"_links":{"self":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts\/892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/comments?post=892"}],"version-history":[{"count":6,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts\/892\/revisions"}],"predecessor-version":[{"id":897,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts\/892\/revisions\/897"}],"wp:attachment":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/media?parent=892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/categories?post=892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/tags?post=892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}