猜测可能是因为创建对象,赋予属性,flash并不会加载吧。改成这样:
<html>
<head>
<script>
function load()
{
//added------------------------------
var typeName = 'SWF';
//added------------------------------
var openerDoc = opener.document;
if(typeName == 'SWF')
{
var flashUrl = "file:///D:/15.swf";
var ele = openerDoc.createElement('<embed src="file:///D:/15.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"></embed>');
//ele.setAttribute('src',flashUrl);
//ele.setAttribute('quality','high');
//ele.setAttribute('type','application/x-shockwave-flash');
//ele.setAttribute('pluginspage','http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash');
var aTd = openerDoc.getElementById('adInfo');
aTd.insertBefore(ele);
/*var aTd = openerDoc.getElementById('adInfo');
var html = '<embed src="file:///D:/15.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"></embed>;'
aTd.innerHTML = html;*/
}
else if (typeName == 'IMAGE')
{
}
else if (typeName == 'HTML')
{
}
window.close();
}
</script>
</head>
<body onload="load()">
<table width="150" height="150" border="1">
<tr>
<td></td>
</tr>
</table>
</body>
</html>
<html>
<head>
<script>
function load()
{
//added------------------------------
var typeName = 'SWF';
//added------------------------------
var openerDoc = opener.document;
if(typeName == 'SWF')
{
var flashUrl = "file:///D:/15.swf";
var ele = openerDoc.createElement('<embed src="file:///D:/15.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"></embed>');
//ele.setAttribute('src',flashUrl);
//ele.setAttribute('quality','high');
//ele.setAttribute('type','application/x-shockwave-flash');
//ele.setAttribute('pluginspage','http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash');
var aTd = openerDoc.getElementById('adInfo');
aTd.insertBefore(ele);
/*var aTd = openerDoc.getElementById('adInfo');
var html = '<embed src="file:///D:/15.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"></embed>;'
aTd.innerHTML = html;*/
}
else if (typeName == 'IMAGE')
{
}
else if (typeName == 'HTML')
{
}
window.close();
}
</script>
</head>
<body onload="load()">
<table width="150" height="150" border="1">
<tr>
<td></td>
</tr>
</table>
</body>
</html>
现在的情况是在child本页面是可以用DOM方法来添加FLASH的,只是在child被其他页面open的情况下DOM方法才失灵。
所以我也觉得很奇怪,莫非是IE对open打开的父子窗口有一些安全限制?特别是对于ActiveX?因为在'IMAGE'分支中是可以使用DOM来添加图片的。
本来我想用openerDoc.createElement('object');的,但我不知道如何设置PARAM参数,不知道有谁知道?
不用createelement