输出JS链接文件再执行

输出JS链接文件再执行

左直拳

 

<script language="JavaScript" src="outer.js" type="text/javascript"></script>这类的句子只能够一早老老实实的写好放在页面里加载执行吗?

错。

一样可以通过document.write()的形式输出,并且浏览器还是一视同仁的执行,不打任何折扣,IE也好,FF也好,都没有问题。

只是,“<script language="JavaScript" src="outer.js" type="text/javascript"></script>这种句子是非常特殊的,不能当作一般的字符串来对待,象

var script = “<script language="JavaScript" src="outer.js" type="text/javascript"></script>”;

一执行,分分钟报错。浏览器说存在未结束的字符串常量。究其原因,<script>是特殊的关键字,虽然包含在双引号里,但浏览器仍然认为它是一个表达式。

所以应该做一些处理再输出。

服务器端:

protected string content = “”;

      Regex re = new Regex(@"script", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);

      content = re.Replace(content, "scrip+t");//script à scrip+t

      re = new Regex(@"<!--|//-->", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);//去掉注释符号

  content = re.Replace(content, "");

 

 客户端:

var content = <%=content%>;

      var r = /scrip/+t/gi;

 content = content.replace(r,"script");//恢复过来再输出

document.write(content);

posted on 2008-07-08 18:41  左直拳  阅读(115)  评论(0编辑  收藏  举报

导航