【发布时间】:2010-11-20 14:10:32
【问题描述】:
设置:
我正在通过 js 打开一个新窗口,这是一个具有一种形式的经典 asp 页面(是的,经典 asp,我知道)。该表单发布到一个处理页面,我在其中 Response.Write() 一些内联 js 来像这样操作父页面上的表单元素。
.Write ("<script language=""javascript"">" & vbcrlf)
.Write ("var stopButton = opener.document.getElementById(""timerStop"");" & vbcrlf)
.Write ("stopButton.style.display = ""inline"";" & vbcrlf)
.Write ("window.close();" & vbcrlf)
.Write ("</script>" & vbcrlf)
问题:
当我尝试更改 stopButton 元素的 onclick 值时,上述所有方法都可以正常工作:
.Write ("<script language=""javascript"">" & vbcrlf)
.Write ("var stopButton = opener.document.getElementById(""timerStop"");" & vbcrlf)
.Write ("stopButton.style.display = ""inline"";" & vbcrlf)
**.Write ("stopButton.onclick = function () {alert(""test"");};" & vbcrlf)**
.Write ("window.close();" & vbcrlf)
.Write ("</script>" & vbcrlf)
然后在窗口关闭后单击按钮,我在 FF 中得到一个错误,在 IE 中没有任何反应:
未捕获的异常:[异常... "组件返回故障码: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMWindowInternal.alert]" nsresult:“0x80004005 (NS_ERROR_FAILURE)”位置:“JS 框架 :: /timer/activity_proc.asp?a=start :: 匿名 :: 第 8 行”数据:无]
这是因为子窗口不再存在吗?我应该注意,在我尝试更改其值之前,该按钮确实具有 onclick 值。
【问题讨论】:
标签: javascript html dom asp-classic