Tag: 互联网浏览器的

尝试访问以编程方式创build的<iframe>的文档对象时,“访问被拒绝”JavaScript错误(仅限IE)

我有项目,我需要使用JavaScript创build一个<iframe>元素,并将其附加到DOM。 之后,我需要在<iframe>中插入一些内容。 这是一个embedded第三方网站的小部件。 我不设置<iframe>的“src”属性,因为我不想加载页面; 相反,它用于隔离/沙箱中插入的内容,以便不会遇到与父页面发生CSS或JavaScript冲突。 我使用JSONP从服务器加载一些HTML内容,并将其插入到<iframe>中。 我有这个工作正常,有一个严重的例外 – 如果document.domain属性设置在父页面(它可能在某些部署此小部件的环境中),Internet Explorer(可能是所有版本,但我确认在6,7和8)给我一个“访问被拒绝”的错误,当我尝试访问这个<iframe>我创build的文档对象。 在我testing过的任何其他浏览器(所有主要的现代浏览器)中都不会发生这种情况。 这是有道理的,因为我知道Internet Explorer要求您设置所有的窗口/框架将相互通信到相同的值document.domain。 但是,我不知道有什么方法可以在我无法访问的文档上设置此值。 有谁知道这样做的方式 – 以某种方式设置这个dynamic创build的<iframe>的document.domain属性? 或者,我没有从正确的angular度来看待这个问题吗?还有另外一种方法可以实现我要做的事情,而不会遇到这个问题吗? 在任何情况下,我确实需要使用<iframe>,因为隔离/沙盒窗口对于这个小部件的function至关重要。 这是我的testing代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Document.domain Test</title> <script type="text/javascript"> document.domain = 'onespot.com'; // set the page's document.domain </script> </head> <body> <p>This is a […]

IE显示:表格单元格忽略高度:100%

我需要dynamic地build立一个表来存放一些数据。 我按照通常的方法使用div display: table , display: table-row和display: table-cell : .tab { display: table; height:100%; width: 200px; } .row { height: 100%; display: table-row; } .elem { border: 1px solid black; vertical-align: top; display: table-cell; height:100%; background: blue; } .content { height: 100%; background: greenyellow; } <div class="tab"> <div class="row"> <div class="elem"> <div class="content"> Content </div> […]

在IE中select固定宽度的下拉菜单

问题: 一些在select的项目需要超过145px的指定宽度才能完整显示。 Firefox的行为 :点击select显示调整到最长元素宽度的下拉元素列表。 IE6和IE7的行为 :点击select显示下拉元素列表限制为145px宽度,使其无法阅读更长的元素。 目前的用户界面要求我们将这个下拉菜单放在145px中,并让它的主机项目有更长的描述。 任何build议解决与IE浏览器的问题? 即使列表展开时,顶部的元素仍应保持145px的宽度。 谢谢! CSS: select.center_pull { background:#eeeeee none repeat scroll 0 0; border:1px solid #7E7E7E; color:#333333; font-size:12px; margin-bottom:4px; margin-right:4px; margin-top:4px; width:145px; } 这里是selectinput代码(目前没有backend_dropbox样式的定义) <select id="select_1" class="center_pull backend_dropbox" name="select_1"> <option value="-1" selected="selected">Browse options</option> <option value="-1">————————————</option> <option value="224">Option 1</option> <option value="234">Longer title for option 2</option> <option value="242">Very long and extensively […]

我可以将整个HTML文档加载到Internet Explorer中的文档片段中吗?

这是我一直有一些困难的东西。 我有一个本地的客户端脚本,需要允许用户获取远程网页,并search结果页面的forms。 为了做到这一点(没有正则expression式),我需要parsing文档到一个完全遍历的DOM对象。 我想强调一些限制: 我不想使用库(如jQuery)。 我在这里需要做的事情太多了。 在任何情况下都不应该执行远程页面的脚本(出于安全原因)。 DOM API(如getElementsByTagName )需要可用。 它只需要在Internet Explorer中工作,但至less在7。 让我们假装我没有访问服务器。 我这样做,但我不能用它。 我试过了 假设我在variableshtml有一个完整的HTML文档string(包括DOCTYPE声明),以下是我迄今为止所尝试的: var frag = document.createDocumentFragment(), div = frag.appendChild(document.createElement("div")); div.outerHTML = html; //-> results in an empty fragment div.insertAdjacentHTML("afterEnd", html); //-> HTML is not added to the fragment div.innerHTML = html; //-> Error (expected, but I tried it anyway) var doc […]

检测用window.open打开的窗口的onload事件

window.popup = window.open($(this).attr('href'), 'Ad', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); $(window.popup).onload = function() { alert("Popup has loaded a page"); }; 这在我尝试过的任何浏览器(IE,Firefox,Chrome)中都不起作用。 我怎样才能检测到一个页面加载到窗口(如iframe onload)?

如何获取在Firefox和/或IE 10中工作的HTML 5 input type =“date”

我觉得奇怪的是, input type="date"仍然不支持在Firefox这一次。 实际上,我不认为他们在input元素上添加了很多HTML5新types(如果有的话)。 并不奇怪,它不支持IE10。 所以,我的问题是… 如何获取input元素上的type="date"而不添加另一个.js文件(即jQueryUI DatePicker Widget)只是为了获取IE和Firefox浏览器的日历/date? 有没有什么可以应用在某个地方(CDN也许?),这将使这个function默认在Firefox和/或IE浏览器? 试图针对IE 8 +浏览器和火狐,没关系,最新版本(28.0)将罚款。 更新:Firefox 57 +支持inputtypes=date

IE10呈现在IE7模式下。 如何强制标准模式?

在微软的网站上,他们声称简单的文档types声明就足够了。 但是即使是这样一个简短的文档也可以回到IE7模式: <!DOCTYPE html> <html> <head> <title></title> </head> <body> </body> </html> http://d.pr/i/fvzb+

使用<meta>标签在所有浏览器中closurescaching?

我读到,当你没有访问Web服务器的头你可以closurescaching使用: <meta http-equiv="Cache-Control" content="no-store" /> 但是我也看到这在IE的某些版本中不起作用。 有没有一组<meta>标签可以closures所有浏览器中的caching?