0

我在这里遇到了一些尴尬的情况,这将是一个黑客,但我没有选择,所以请多多包涵。我有一个第三方 Web 应用程序,它的主页上嵌入了内容持有者。在内容持有者中,您可以指定自己的和 Javascript。这是我唯一可以进行 HTML/javascript 编辑的地方。我无权访问页面的其余部分。

我正在处理的项目使用这些内容持有者来托管指向 MyCustomWebPage 的 iframe。MyCustomWebPage 上有一个“X-UA-Compatible”元标记。不幸的是,由于它托管在 iframe 中,第三方 Web 应用程序页面设置似乎覆盖了 MyCustomWebPage 上的设置。这意味着我的“X-UA-Compatible”元标记不起作用/被忽略/等等。

因此,我想知道在内容持有者加载时将“X-UA-Compatible”元标记附加到第三方 Web 应用程序的元素是否可行。它目前没有“X-UA-Compatible”元标记。我找到了以下有关如何从另一个 stackoverflow 帖子附加元标记的示例。

在我的内容持有者中,我现在拥有以下内容:

<script language="javascript">
//<![CDATA[
       function metafix() { 
               var iefix=document.createElement('meta');
               iefix.setAttribute("http-equiv", "X-UA-Compatible");
               iefix.setAttribute("content", "IE=9");

               var x = document.getElementsByTagName('head')[0];
               alert(x); 

               document.getElementsByTagName('head')[0].appendChild(iefix);
            }
   metafix();
   //]]>
   </script>

   <iframe style="WIDTH: 100%; HEIGHT: 515px" id="MyCustomWebPage"  src="www.mycustomwebpage.web" width="100%"></iframe>

CDATA 标记由第三方 Web 应用程序的内容编辑器自动插入。现在,我知道这段代码正在执行,因为当页面加载时,我看到了 alert(x)。它说对象,所以我知道它正在寻找元素。问题是,“X-UA-Compatible”元标记拒绝附加到元素。做一个“查看源代码”证实了这一点。这就像 appendChild(iefix) 永远不会执行。

为什么会发生这种情况,我可以做些什么来强制执行该代码,以便将标签附加到第三方 Web 应用程序的元素?

4

0 回答 0