[英]Execute classic ASP code on mouse over
当将鼠标移到div上时,我想执行此Classic 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文件上创建一个函数,但是没有用。
应该怎么做?
你真的不能那样做。 关键是在客户端计算机上发生“传递鼠标”事件。 ASP代码在服务器计算机上运行的位置。 因此,您必须采用某种方法将它们连接在一起。
他们看起来可以一起工作的方式是,当用户使用其计算机上的浏览器请求一个ASP页面时,他们的浏览器将请求发送到您的Web服务器,您的Web服务器运行您的ASP代码,该代码会生成HTML代码。 然后,它将结果HTML代码发送到客户端,客户端浏览器接收结果HTML代码,然后从那里接管。 此用户可以移动鼠标以触发一些JavaScript代码之后,但这已在您的ASP代码运行很长时间之后发生,并且发生在客户端计算机中。
为了使客户端事件“调用”服务器端代码,您将必须触发某种服务器请求。 “ form.submit”是一个典型示例,其中客户端JavaScript代码可以调用form.submit函数来提交表单,这将导致浏览器将页面回发到服务器,然后再次调用服务器代码,然后生成一些新的代码。 HTML并发送回客户端浏览器,然后客户端浏览器将像这样一遍又一遍地接管。
您可以在页面中的任何时间使用AJAX来“回调”服务器。 我对ASP.NET AJAX很熟悉,但是我不知道您可以在ASP中使用什么。 但是概念是相同的,这是您必须以某种方式返回到服务器端才能运行服务器端代码。
希望这会有所帮助。
最快的方法是创建一个迷你表单,该表单指向您的ASP文件作为操作,例如
<form id="myForm" action="mycode.asp?undercity=somedata">
<div onmouseover="document.getElementById('myForm').submit()" >
Mouse over me!
</div>
</form>
上面的代码定义了一个表单“ myForm”和具有鼠标悬停功能的DIV来提交该表单。 您可以将必需的查询字符串参数添加到“操作”中指定的页面。
基本演示: http : //jsfiddle.net/S5GFN/3/
注意:此操作将重新加载整个页面。 如果您需要替换元素的.innerHTML
,则必须执行AJAX调用。 我建议使用jQuery的.load()方法,使用它您可以在客户端代码中进行简单的调用,例如:
$("#mouseOverDiv").mouseover(function() {
$("#myElement").load("mycode.asp?undercity=somedata")
});
这是一个示例: http : //jsfiddle.net/S5GFN/5/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.