繁体   English   中英

鼠标悬停执行经典的ASP代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM