問題:
我是打算使用上面的語句把資料庫的連接字串寫入上一級網頁的connstr文字框中,但是在執行時ie總報告“缺少十六進位數字”。
代碼如下:
a="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:/網站設計/dianming/upload/student.mdb;"
Response.Write("<script>")
html="parent.document.getElementById(""connstr"").value="""+a+""""
Response.Write(html+";")
Response.Write("</script>")
問題分析:
到底是怎麼回事呢?經過實驗發現,問題出在字串a中的 “/” 上, 原來javascript中“/”是個特殊的字元,在很多場合需要轉換,為此我使用“/“臨時替代”/“一下,在使用到此字串的時候再轉換回來就可以了。
代碼改寫如下:
a="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:/網站設計/dianming/upload/student.mdb;"
html=html+replace(a,"/","/")+""""
Response.Write("<script>")
html="parent.document.getElementById(""connstr"").value="""+a+""""
Response.Write(html+";")
Response.Write("</script>")
參考:
例子程式:
*Encode for HTML.
*/
public static String htmlEncoder(String str)
{
if(str==null || str.equals(""))
return "";
String res_str;
res_str=strReplace(str,"&","&");
res_str=strReplace(str," "," ");
res_str=strReplace(str,"<","<");
res_str=strReplace(str,">","&rt;");
res_str=strReplace(str,"/"",""");
res_str=strReplace(str,"'","'");
return res_str;
}
/**
*Encode for HTML-Text.
*/
public static String htmlTextEncoder(String str)
{
if(str==null || str.equals(""))
return "";
String res_str;
res_str=strReplace(str,"&","&");
res_str=strReplace(str,"<","<");
res_str=strReplace(str,">","&rt;");
res_str=strReplace(str,"/"",""");
res_str=strReplace(str,"'","'");
res_str=strReplace(str," "," ");
res_str=strReplace(str,"/r/n","<br/>");
res_str=strReplace(str,"/r","<br/>");
res_str=strReplace(str,"/n","<br/>");
return res_str;
}
/**
*Encode for URL.
*/
public static String urlEncoder(String str) {
return java.net.URLEncoder.encode(str) ;
}
/**
*Encode for XML.
*/
public static String xmlEncoder(String str)
{
if(str==null || str.equals(""))
return "";
String res_str;
res_str=strReplace(str,"&","&");
res_str=strReplace(res_str,"<","<");
res_str=strReplace(res_str,">",">");
res_str=strReplace(res_str,"/"", """);
res_str=strReplace(res_str,"/'", "´");
return res_str;
}
/**
*Encode for SQL.
*/
public static String sqlEncoder(String str)
{
if(str==null || str.equals(""))
return "";
String res_str;
res_str=strReplace(str,"'","''");
return res_str;
}
/**
*Encode for Javascript.
*/
public static String jsEncoder(String str)
{
if(str==null || str.equals(""))
return "";
String res_str;
res_str=strReplace(str,"'","//'");
res_str=strReplace(str,"/"","///"");
res_str=strReplace(str,"/r/n","///n");
res_str=strReplace(str,"/n","///n");
res_str=strReplace(str,"/r","///n");
return res_str;
}
html=html+replace(table_list(fileExt,path,2),"/","/")+""""