我希望在将鼠标移到div上时执行此经典ASP代码。
<%
dim s
s=Request.QueryString("undercity")
Response.Write(s)
set fs=Server.CreateObject("Scripting.FileSystemObject")
if s<>"" then
set f=fs.OpenTextFile(Server.MapPath("RDS/rds.txt"),2,true)
f.WriteLine(s)
f.Close
Set f=Nothing
else
if (fs.FileExists(Server.MapPath("RDS/rds.txt")))=true then
set f=fs.OpenTextFile(Server.MapPath("RDS/rds.txt"),1)
Response.Write("On air: "+f.ReadAll)
f.Close
Set f=Nothing
end if
end if
set fs=Nothing
%>
我尝试使用.innerHTML="<% code %>"
在我的js文件上创建一个函数,但它不起作用。
应该怎么做?
答案 0 :(得分:3)
你不可能那样做。关键是客户端计算机上发生“传递鼠标”事件。 ASP代码在服务器计算机上运行的位置。所以你必须有办法将它们连接在一起。
他们似乎一起工作的方式是,当用户在他们的机器上使用浏览器请求asp页面时,他们的浏览器向您的Web服务器发送请求,您的Web服务器运行您的asp代码,该代码生成HTML代码。然后它将结果HTML代码发送到客户端,客户端浏览器接收结果HTML代码,然后从那里接管。在此用户可以移动鼠标以触发一些JavaScript代码之后,但是在您的ASP代码运行并且它在客户端计算机中发生之后很久。
为了让客户端事件“调用”服务器端代码,您必须触发某种服务器请求。 “form.submit”是客户端JavaScript代码可以调用form.submit函数来提交表单的典型示例,这会导致浏览器将页面回发到服务器,然后再次调用服务器代码,然后生成一些新的HTML并发送回客户端浏览器,然后客户端浏览器就像这样反复接管。
您可以随时在页面中使用AJAX“呼叫”回服务器。我熟悉ASP.NET AJAX,但我不知道你可以用ASP。但是这个概念是一样的,你必须以某种方式回到服务器端才能运行服务器端代码。
希望这有点帮助。
答案 1 :(得分:2)
最快的方法是创建指向ASP文件的迷你表单,例如
<form id="myForm" action="mycode.asp?undercity=somedata">
<div onmouseover="document.getElementById('myForm').submit()" >
Mouse over me!
</div>
</form>
上面的代码定义了一个表单“myForm”和带有鼠标悬停功能的DIV,它提交了表单。您可以将所需的查询字符串参数添加到Action中指定的页面。
基本演示:http://jsfiddle.net/S5GFN/3/
注意:此操作将重新加载整个页面。如果需要替换元素的.innerHTML
,则必须执行AJAX调用。我建议使用jQuery's .load()方法,使用它可以在客户端代码中进行简单的调用,例如:
$("#mouseOverDiv").mouseover(function() {
$("#myElement").load("mycode.asp?undercity=somedata")
});
以下是一个示例:http://jsfiddle.net/S5GFN/5/