在下载证书时,Win7采用了CertEnroll不再使用之前的XEnroll,但是发现在Iframe和FrameSet框架下对象调用存在问题
,尤其是FrameSet框架下。我们来逐一分析
1)iframe
iframe嵌入的网页中无法用脚本创建对象,必须在父窗口中创建对象,然后在子窗口中调用。
window.parent.
2)frameset
与iframe完全一样,在FrameSet页面进行object写入,然后在引用页进行调用,给出实例。
<html>
<head>
<object classid="clsid:884e2049-217d-11da-b2a4-000e7bbb2b09" id="g_objClassFactory" name="g_objClassFactory" height="10" width="10" ></object>
<frameset id="allFrame" rows="98, *" cols="*" frameborder="NO" border="0" framespacing="0" noresize>
<frame src="/top2.jsp" scrolling="NO" noresize>
<frameset id="mainFrame" cols="178,12,*" rows="*" border="0" frameborder="NO" framespacing="0" scrolling="NO" noresize>
<frame src="/left.jsp" name="lefttop" scrolling="auto" noresize>
<frame name="bar" src="/common/mainPage0_bar.jsp" scrolling="NO" frameborder="NO" border="0" framespacing="0" noresize>
<frameset rows="65,*" cols="*" frameborder="NO" border="0" framespacing="0">
<frame src="/top.jsp" scrolling="NO" name="rightTop" noresize>
<frame src="/right.jsp" name="right">
</frameset>
</frameset>
</frameset>
</head>
在right.jsp下进行调用
可能又问会问为什么frameset有多层的话,是不是需要有多个parent调用呢,根据同事提供的参考发现,
所有frameset不管是多少层,都是以数组的方式存在,即以上的例子来看
调用各个frame的话,应该是
parent.FRAMEs[0] 对应 <frame src="/top2.jsp" scrolling="NO" noresize>
parent.FRAMEs[1] 对应 <frame src="/left.jsp" name="lefttop" scrolling="auto" noresize>
parent.FRAMEs[2] 对应 <frame src="/top.jsp" scrolling="NO" name="rightTop" noresize>
parent.FRAMEs[3] 对应 <frame src="/right.jsp" name="right">
Head元素,发现一个问题,如果Frameset如果在Head元素外面也不能正常调用object,暂还没有时间分析。