document.write的问题

NetColorWolf 2003-12-30 03:39:38
我用document.write在页面P中写入了下面的一段文本
<script language="javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script>

在WebUIValidation.js文件中有如下的脚本
var Page_ValidationVer = "125";
var Page_IsValid = true;
var Page_BlockSubmit = false;
function ValidatorUpdateDisplay(val) {
if (typeof(val.display) == "string") {
if (val.display == "None") {
。。。

在页面P中要访问WebUIValidation.js文件中的变量Page_ValidationVer
如果我用document.write的方式,在页面P中就访问不了
如果直接把<script....>写在P页面中,就可以访问。

但我现在只要用document.write来写,谁碰到这这种情况吗?知道怎么处理吗?
...全文
60 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
houjianxun 2004-01-05
  • 打赏
  • 举报
回复
这样做是不可以的,因为你用js脚本在里面输出<script>标记会起冲突

可以换个方法如下:

a.js内容如下:
var str="确定";

a.htm内容如下:
<script id=sc language=jscript></script>
<script>
document.all.item("sc").src="a.js";
</script>
<script>
alert(str);
</script>


以上程序在win2000 server+ie6+sp1下测试成功
NetColorWolf 2004-01-05
  • 打赏
  • 举报
回复
这是我在javascript版问的同样的问题,及其相应的回复:
http://expert.csdn.net/Expert/topic/2618/2618395.xml?temp=.4640619
NetColorWolf 2004-01-05
  • 打赏
  • 举报
回复
谢谢楼上的友情客串:)

这是Javascript版的seeu1688(kangel)的回复,解答了我的疑惑。
js引擎按<script>块来解析的。
对于write进入的js文件,在一个script块结束后才开始解析内部语法。所以在write写入js文件后,立即在同一<script>内调用js文件内的变量是免为其难的。

要让后续脚本理解write写入的js里的变量,就必须立马用</script>结束这段脚本

原问题解决如下:
<script>
document.write("<script" + " src='eondgdrag.js'>" + "</script" + ">");
</script>
<script>
document.write("<scr" + "ipt>alert(aa);</scr" + "ipt><input type=button onclick='ValidatorUpdateDisplay()'>" )
</script>
wszp 2004-01-05
  • 打赏
  • 举报
回复
……………………
NetColorWolf 2003-12-31
  • 打赏
  • 举报
回复
up
NetColorWolf 2003-12-31
  • 打赏
  • 举报
回复
gz
NetColorWolf 2003-12-31
  • 打赏
  • 举报
回复
我提的问题是不是太难了?

难道真的要把这个问题留到明年?:(
大可山人 2003-12-30
  • 打赏
  • 举报
回复
UP
NetColorWolf 2003-12-30
  • 打赏
  • 举报
回复
谢谢:)
经测试,发现如果变量不是定义在.js文件中,那么可以就可以访问
pass.htm
<script>
document.write("<script" + " src='eondgdrag.js'>" + "</script" + "><scr" + "ipt>var bb='*';</scr" + "ipt><scr" + "ipt>alert(bb);</scr" + "ipt><input type=button onclick='ValidatorUpdateDisplay()'>" )
</script>

eondgdrag.js
var aa = "p"
function ValidatorUpdateDisplay()
{
alert(aa);
}
jsljy 2003-12-30
  • 打赏
  • 举报
回复
帮你定一下
NetColorWolf 2003-12-30
  • 打赏
  • 举报
回复
我认为关键的问题是document.write()这个函数的问题

怎么在其中的代码段中声明变量的问题
NetColorWolf 2003-12-30
  • 打赏
  • 举报
回复
代码是这个样子的:
var oNewDoc = document.open("text/html", "replace");
var sMarkup = ....其中包含<script language="javascript...这一段
oNewDoc.write(sMarkup);
oNewDoc.close();
losenetway 2003-12-30
  • 打赏
  • 举报
回复
看看你的脚本顺序

在页面P中要访问WebUIValidation.js文件中的变量Page_ValidationVer

访问的代码应该放在
<script language="javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script>
的后面就可以了
liuzhonghe 2003-12-30
  • 打赏
  • 举报
回复
贴出更多的代码来
NetColorWolf 2003-12-30
  • 打赏
  • 举报
回复
TO:mynewpc(水中日月)
访问变量的代码也是写在document.write中的
mynewpc 2003-12-30
  • 打赏
  • 举报
回复
应该在页面代码访问变量前调用document.write
shenanigan 2003-12-30
  • 打赏
  • 举报
回复
gz
NetColorWolf 2003-12-30
  • 打赏
  • 举报
回复
高手何在?
苍天何在!

55555555555555

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧