ten*_*les 7 javascript internet-explorer frameset
我有一个自定义日期选择器弹出窗口有时无法在IE中工作.它适用于Chrome和Edge.
代码看起来像这样:
<frameset>
<frame>Buttons for next/prev month/year</frame>
<frame>This is the actual calendar that gets redrawn when the above buttons are used
<a href="javascript:parent.opener.setDate(1);">1</a> //there's a different anchor tag for each day of the month
</frame>
<frameset>
Run Code Online (Sandbox Code Playgroud)
所以这里有点奇怪.我们有两个网络,称之为新旧.旧的可能有很多无证的全球政策变化,新的可能接近政府标准.这适用于旧网络上的任何浏览器,但不适用于新网络上的IE(11).它适用于Edge.此外,如果顶部框架按钮用于选择下一个/上个月,或仅选择"今天"按钮,则所有底部框架锚定链接都能正常工作.没有控制台错误/警告,网络监视器中没有任何内容显示请求返回错误代码,点击只是不注册.我在customFunction()中放置一个断点,当链接不起作用时它不会中断,但是如果链接可以工作,它将会中断.
唯一对我来说很奇怪的是整个弹出窗口的代码看起来像:
str = "<frameset><frame name='topFrame' " +
"src='javascript:parent.opener.drawTop'></frame><frame name='bottomFrame' "+
"src='javascript:parent.opener.drawBottom'><frame</frameset>"
document.write(str);
Run Code Online (Sandbox Code Playgroud)
我确实想检查一下,当使用prev/next/etc按钮时重绘底部框架的代码与第一次加载时调用的函数相同.
然而,看起来奇怪的是,在第一次加载时,DOM检查器显示所有内容(顶部框架,底部框架包括每月每天的所有单独数字等),但调试器(F12工具)不显示用document.write(str)加载的代码; 线.为了能够看到该代码并设置断点,我必须使用prev/next按钮,然后在Debugger中显示另一个.html文件,该文件具有与DOM匹配的构造HTML.
尝试这个:
1)
<a href="javascript:parent.opener.setDate(1); void(0);">1</a>
Run Code Online (Sandbox Code Playgroud)
2)
<a href="javascript:function(){parent.opener.setDate(1); return false;}">1</a>
Run Code Online (Sandbox Code Playgroud)
3)
<a href="#" onclick="javascript:parent.opener.setDate(1); return false;">1</a>
Run Code Online (Sandbox Code Playgroud)
4)检查你的代码。也许你的框架有属性“沙箱”。该属性可以阻止 javascript。例子:
<iframe src="URL" sandbox>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1727 次 |
| 最近记录: |