我在js中宣告了
<script language="javascript" type="text/javascript" runat="server">
然后在asp檔案中直接呼叫js中的函式Add(s)是不起作用的,這是怎么回事?
<%
Data = "abc"
a=Demo(Data)
function Demo(Data)
Sum = Add(Data)
end function
%>
uj5u.com熱心網友回復:
<script runat="server">現在是在服務器端執行,你的Add是客戶端執行函式<script runat="server"> </script>中只能放置方法和屬性等,而不能直接添加陳述句和運算式。
而且你使用了<% %>標記,這個標記的使用有一定的局限性,其中不能宣告函式或子例程,只能放置陳述句
uj5u.com熱心網友回復:
那么,我要用什么格式才能在ASP中呼叫Add函式,我直接使用Add(Data)會變成白屏,是使用方法的問題么,還是函式本身的問題?<%
function Demo(Data)
Sum = Add(Data) //呼叫js中的Add函式,這樣直接賦值可行么?
end function
%>
uj5u.com熱心網友回復:
asp的代碼會先由服務端執行,執行產生結果和其他內容一起發送到客戶端,再由客戶端執行html/css/js等。所以不能在服務端代碼里執行客戶端代碼。
如果你在客戶端實作Add的操作,又需要asp的邏輯去計算,需要先提交到服務端,獲取引數,計算再回傳客戶端。
================================
其實我是路過,看下我10來年沒上的賬號啥樣了。。。
uj5u.com熱心網友回復:
首先你要確定你的JS是要在服務器端運行,還是在客戶端運行。看你的代碼用的VBSCRIPT,那你的JS應該是客戶端運行的了。
假設你的JS里有個函式 Demo(Data),
在ASP中設用,你寫成: response.write "<script>Demo(Data);</script>"
這樣客戶端就行運行了。
uj5u.com熱心網友回復:
js代碼和asp放在一起(即這段js代碼也須放在asp源程式中才行),保證可以實作的:
<script language="javascript" type="text/javascript" runat="server">
function Add(Data) {
...
}
</SCRIPT>
<%
Data = "abc"
a=Demo(Data)
function Demo(Data)
Sum = Add(Data)
end function
%>
uj5u.com熱心網友回復:
可以呼叫嗎?我只知道js可以呼叫asp里面的方法,比如:winFormuj5u.com熱心網友回復:
我只知道js????劍圣uj5u.com熱心網友回復:
不要這個:runat="server"response.write "<script>Demo(Data);</script>"
回傳值如何獲得就不會了 :)
uj5u.com熱心網友回復:
現在不都是用ajax嗎?uj5u.com熱心網友回復:
樓主的問題是沒毛病的,主要是要把iis的錯誤回顯打開來,并且把可能瞎幾把寫的全域vbscript的錯誤抑制關掉on error goto 0,能看到具體的錯誤才好去分析到底哪里寫錯了。一直都認為只要寫得好,asp比其他的語言來講是最棒的,尤其是可以vb和js混合運行,但以前半桶水的開發者太多了,也怪太容易學了,隨便入門就能搞網站,最后搞死了。。。在告訴大家一個牛了個逼的地方:
<%%>中默認執行vbscript的時候(IIS可以修改默認成其他語言),<script language="javascript" runat="server">中的js腳本運行的優先級比vbscript高,意思就是說js代碼會先全部執行完,然后再執行vbscript,厲害吧?? 這個特性非常的有用。
uj5u.com熱心網友回復:
好象做不到,js得到游覽器寬度=document.body.clientWidth;(不是顯示幕寬度),想把它回傳到ASP作變數值我都做不到!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/129028.html
標籤:ASP
上一篇:了解富文本編輯器?恭喜你,你已經超越了99%的前端程式員
下一篇:css3火狐縮放
