try it:<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script src="Message.js"></script>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
<script>showMessageBox("a","a","a");</script><!--参数可以随便给和程序调试无关-->
</html>
<head runat="server">
<title>无标题页</title>
<script src="Message.js"></script>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
<script>showMessageBox("a","a","a");</script><!--参数可以随便给和程序调试无关-->
</html>
解决方案 »
- radio框选中如何赋值给多个input?
- javascript this到底指向的是哪个对象
- 跪求!!佳能(中国)Flash源代码或者JS源代码。最好可以带有数字按钮
- QQ新闻提示框
- 有关于修改select控件的value,会不会触发change事件
- IE与FireFoxd事件响应
- <body onload=function>和<body>function有什么区别
- 怎么让表单不出现下拉提示
- 通过游览器判断语言跳转到指定页面的问题
- 鼠标点击上框架的内容,怎么自动的在下框架中显示呢?
- 想让一个按钮在页面上永远水平居中(页面上有水平滚动条),要怎么弄啊?问题解决,马上结贴
- 急,动态表单问题高手进.......
</form>这个的原因了
你有放在同一目录下么?
<script type="text/javascript">
var MessageBox=function(mention,image,onclick)
{
this.mention= mention;
this.image = image;
this.onclick = onclick;
this.mainDiv = document.createElement("<div id=\"div_mention\" class=\"mistakes\"></div>");
this.insideDiv1 = document.createElement("<div class=\"mistakes-t\"></div>");
this.insideDiv1_li1 = document.createElement("<li class=\"mistakes-t1\"></li>");
this.insideDiv1_li1.innerHTML = "系统提示信息";
this.insideDiv1_li2 = document.createElement("<li class=\"mistakes-t2\"></li>");
this.insideDiv1_li2_img = document.createElement("<img style=\"CURSOR:hand\" src=\"../image/company/tishi2.gif\" />");
this.insideDiv1_li2_img.onclick = new Function("document.body.removeChild($('div_mention'));");
this.insideDiv1_li2.appendChild(this.insideDiv1_li2_img);
this.insideDiv1.appendChild(this.insideDiv1_li1);
this.insideDiv1.appendChild(this.insideDiv1_li2);
this.mainDiv.appendChild(this.insideDiv1);
this.insideDiv2 = document.createElement("<div></div>");
this.insideDiv2_li1 = document.createElement("<li class=\"mistakes-n\"></li>");
this.insideDiv2_li1_img = document.createElement("<img />");
this.insideDiv2_li1_img.src = this.image;
this.insideDiv2_li1.appendChild(this.insideDiv2_li1_img);
this.insideDiv2_li2 = document.createElement("<li class=\"mistakes-n1\"></li>");
this.insideDiv2_li2.innerHTML = this.mention;
this.insideDiv2_li3 = document.createElement("<li class=\"mistakes-n2\"></li>");
this.button = document.createElement("<input type=\"button\" class=\"btn\" value=\"确 定\" />");
this.button.onclick = new Function(onclick+"document.body.removeChild($('div_mention'));");
this.insideDiv2_li3.appendChild(this.button);
this.insideDiv2.appendChild(this.insideDiv2_li1);
this.insideDiv2.appendChild(this.insideDiv2_li2);
this.insideDiv2.appendChild(this.insideDiv2_li3);
this.mainDiv.appendChild(this.insideDiv2);
}
MessageBox.prototype.show = function()
{
this.mainDiv.style.position = "absolute";
this.mainDiv.style.right="300px";
this.mainDiv.style.bottom="300px";
document.body.appendChild(this.mainDiv);
this.button.focus();
}
function showMessageBox(content,image,onclick)
{
new MessageBox(content,image,onclick).show();
}
</script>
lz的代码为:
<form id="form1" runat="server">
<script>showMessageBox("a","a","a");</script><!--参数可以随便给和程序调试无关-->
</form>
浏览器按顺序加载页面元素,<form id="form1" runat="server">开始加载form组件,然后是里面的js:<script>showMessageBox("a","a","a");</script>,js加完后立即执行,而这时form没有加载完毕,如果这个时候js中对页面进行增减元素的操作,则会出现lz遇到的错误;
要注意的是:
1.form中的js如果没有对页面增减元素的操作,是不会出现错误的
2.js不仅仅在form中会出现这种情况,在页面任何以<xxx></xxx>为结构的页面元素也同样会出现类似错误,比如<div></div>,<table></table>,<span></span>,<td></td>等等解决办法很多,只要回避上述现象的出现就可以了,比如将js放到form的外面,作为body的直接子节点,即:
<body>
<form id="form1" runat="server">
</form>
<script>showMessageBox("a","a","a");</script><!--参数可以随便给和程序调试无关-->
</body>
但根据你刚才说的代码必须在form外声明,所以我不知道.net代码怎么写了
不知道可不可以让js代码在form里面跟form外面建立一个桥(先注入到form中,再想办法移出去)
<script for="window" event="onload" language="javascript">showMessageBox("a","a","a")</script>
上面代码可以放在form中
绑定<script></script>对象
相当于window.onload='showMessageBox("a","a","a")'
这样应该没问题了