1

如何将 javascript 标记中的参数(使用 QueryString)作为源属性发送到 ASP.NET 页面?

例子:<script language="javascript" src="myDomain/myPage.aspx?id=123&no=43"></script>

我必须在“myPage.aspx”中做什么?

例如,我想根据它的 src 查询字符串将图片发送到脚本标签。

4

4 回答 4

3

script 标签用于在页面中包含 javascript 代码。如果要在页面上显示图像,即使是动态生成的图像,也需要使用 img 标签,而不是 script 标签。

<img src="myDomain/myPage.aspx?id=123&no=43" alt="some text" />

通常,您会为此使用 HttpHandler(ashx 而不是 aspx),它只需要构造图像(或从文件中读取它),然后使用正确的 MIME 类型、长度在响应中发送数据, ETC。

有关如何使用 HttpHandler 从数据库中检索图像的信息,请参阅此参考。

于 2009-04-21T20:22:21.860 回答
2

目前尚不清楚您打算在 myPage.aspx 中做什么。由于它是一个脚本标签,它应该是生成 javascript 代码。但我看不出有什么理由需要动态生成 javascript 代码。Javascript变量基本上具有全局范围,因此在包含脚本标记之前将图像定义在变量中。

因此,在您的 html 页面中,您将在标题中执行以下操作:

<script type="text/javascript">
var imageURL = 'http://www.google.com/intl/en_ALL/images/logo.gif';
</script>
<script src="myScript.js" type="text/javascript"></script>

然后在 myScript.js 中:

alert("The image URL is: " + imageURL);
//do whatever processing with the image that you need to do...

谷歌分析过去就是这样工作的(在他们采用更面向对象的方法之前)。

于 2009-04-21T20:29:53.577 回答
1

为什么要将图片发送到脚本标签?基本上你所拥有的将在客户端工作。在 MYPage.aspx 中,您需要输出要发送的内容。

我建议使用 HttpHandler,它非常适合动态提供 CSS、Javascript 或图像等内容

于 2009-04-21T20:25:25.537 回答
0

您所要做的就是为您的<SCRIPT>标签提供一个指向 ASPX 页面的 SRC 属性,就像您想要的那样。唯一的技巧是您必须让返回 javascript 的 ASPX 页面将 contentType 设置为text/javascript. (确保它只发回有效的 javascript。)

这里有两个文件可以证明它有效:

JavascriptLibraryTester.aspx

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script src="JavascriptLibraryTest.js.aspx?Color=red" type="text/javascript" charset="utf-8">
</script>
</head>
<body>
    <a href="javascript:showServerGeneratedJavascript()">show Server Generated Javascript</a>
</body>

JavascriptLibraryTest.js.aspx

<%@ Page Language="C#" %>
<%
    Response.ContentType = "text/javascript";
    string color = Request["Color"];
    string now = DateTime.Now.ToString();
%>
function showServerGeneratedJavascript(){
    alert('<%=now %>\n<%=color %>');
}
于 2010-02-20T22:07:19.823 回答