我正在使用Wordpress网站,该网站使用iframe
对页面上填充的按钮进行外部调用,并提供指向同一外部网站的链接以预约约会。
iframe在除IE11之外的所有浏览器中都能正常运行。 IE11中的用户代理字符串设置为default
,但如果我将IE浏览器工具中的字符串切换为IE10及其中的任何内容,则该按钮将呈现并完美运行。
那么,是否有人知道如何将用户代理字符串设置为任何内容,但"默认"?注意:这与设置User-Agent
不同,我已经完成了,但它不起作用。 (或者是吗?......以及如何?)
我尝试过的例子:
<meta http-equiv="X-UA-Compatible" content="IE=10"/>
及其变体。
更新:另外,<iframe>
加载了doctype
和html
声明。这可能是我问题的一部分吗? (我无法访问由iframe
加载的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
答案 0 :(得分:-1)
请更改您对IE的检测,不要依赖UA字符串,而是使用条件评论和document.documentMode
var tmp = document.documentMode, e, isIE;
// Try to force this property to be a string.
try{document.documentMode = "";}
catch(e){ };
// If document.documentMode is a number, then it is a read-only property, and so
// we have IE 8+.
// Otherwise, if conditional compilation works, then we have IE < 11.
// Otherwise, we have a non-IE browser.
isIE = typeof document.documentMode == "number" || eval("/*@cc_on!@*/!1");
// Switch back the value to be unobtrusive for non-IE browsers.
try{document.documentMode = tmp;}
catch(e){ };
请参阅http://www.pinlady.net/PluginDetect/IE/
如果您的代码使用此属性进行检测,请检查https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.userAgent。
简而言之,不是破坏iframe的UA字符串,它是iframe中的逻辑被破坏,因为它依赖于UA嗅探而不是特征检测。
如果您无法控制iframe中显示的内容,最好的办法是联系您在iframe中显示的内容的提供商,并要求他们更新代码以正确处理IE11。