Javascript 在jsp中将屏幕宽度作为变量获取

Javascript 在jsp中将屏幕宽度作为变量获取,javascript,css,jsp,Javascript,Css,Jsp,我需要知道如何调整图像的大小(它需要作为img src=“blah.jpg?width=x传递),以便我的页面可以以不同的大小显示,有人能帮我吗?我只需要x(width)作为jsp变量 2021年更新:哇,9年后。如果你正在看这个(你们中的一些人仍然在看)--Javascript在过去9年中取得了惊人的进步。正如下面的评论所说,这在JSP中是不可能的,但在Javascript和CSS3中是可能的。如果您试图确定页面宽度以动态调整元素大小,您可能不尊重多年来开发的响应原则。看进入CSS Flexb

我需要知道如何调整图像的大小(它需要作为img src=“blah.jpg?width=x传递),以便我的页面可以以不同的大小显示,有人能帮我吗?我只需要x(width)作为jsp变量

2021年更新:哇,9年后。如果你正在看这个(你们中的一些人仍然在看)--Javascript在过去9年中取得了惊人的进步。正如下面的评论所说,这在JSP中是不可能的,但在Javascript和CSS3中是可能的。如果您试图确定页面宽度以动态调整元素大小,您可能不尊重多年来开发的响应原则。看进入CSS Flexbox,并在设计时牢记这一点


干杯

您所要求的不能用这种方式完成。您的JSP在服务器上呈现,并作为HTML发送到浏览器。只有当页面到达浏览器时,屏幕宽度才可用(使用JavaScript)。因此,将其作为JSP变量是不可能的

相反,您可以使用JavaScript在上一页中获取屏幕宽度,并将其设置为链接中的查询参数或表单的隐藏字段。单击链接或提交表单时,您可以访问请求以获取屏幕宽度

当然,如果用户可以通过直接在浏览器中输入该页面的URL来访问该页面的URL,则这是行不通的


或者,在页面加载后,使用JavaScript加载图像。此时您将拥有屏幕宽度,并可以相应地构造URL。基本上,您将使用主体(或
$(文档)的
onload
事件。在JQuery中,ready
),调用javascript,将图像的
src
属性设置为您需要使用的URL。

您请求的内容不能用这种方式完成。您的JSP在服务器上呈现,并作为HTML发送到浏览器。只有当页面到达浏览器时,屏幕宽度才可用(使用javascript)因此,将其作为JSP变量是不可能的

相反,您可以使用JavaScript在上一页中获取屏幕宽度,并将其设置为链接中的查询参数或表单的隐藏字段。单击链接或提交表单时,您可以访问请求以获取屏幕宽度

当然,如果用户可以通过直接在浏览器中输入该页面的URL来访问该页面的URL,则这是行不通的


或者,在页面加载后,使用JavaScript加载图像。此时您将拥有屏幕宽度,并可以相应地构造URL。基本上,您将使用主体(或
$(文档)的
onload
事件。在JQuery中,ready
),调用javascript,将图像的
src
属性设置为需要使用的URL。

我也遇到了同样的问题,但后来意识到我可以用以下方法解决它:
有一个启动页面,如tomcat中的index.html,在会话开始时自动调用该页面,并执行以下操作:

<!DOCTYPE html>
<html>
<head>
    <script>
    var init=function() {
        var noi=window.innerHeight;
        url="myPage.jsp?rows="+noi;
        cm=document.getElementById('cm');
        cm.href=url;
        cm.click();
    }
    </script>
</head>
<body onload=init()>
<A style='' id=cm HREF=''>&nbsp;</A>
</body>

var init=函数(){
var noi=窗内高度;
url=“myPage.jsp?rows=“+noi;
cm=document.getElementById('cm');
cm.href=url;
cm.click();
}
在“myPage.jsp”页面中,收集java代码中的变量“rows”
你已经准备好了!

我也遇到了同样的问题,但后来意识到我可以用以下方法解决它:
有一个启动页面,如tomcat中的index.html,在会话开始时自动调用该页面,并执行以下操作:

<!DOCTYPE html>
<html>
<head>
    <script>
    var init=function() {
        var noi=window.innerHeight;
        url="myPage.jsp?rows="+noi;
        cm=document.getElementById('cm');
        cm.href=url;
        cm.click();
    }
    </script>
</head>
<body onload=init()>
<A style='' id=cm HREF=''>&nbsp;</A>
</body>

var init=函数(){
var noi=窗内高度;
url=“myPage.jsp?rows=“+noi;
cm=document.getElementById('cm');
cm.href=url;
cm.click();
}
在“myPage.jsp”页面中,收集java代码中的变量“rows”
现在就可以开始了!

这在JSP中是不可能的,因为这是在服务器上运行的。您需要使用客户端Javascript获取信息并以某种方式将其传递回服务器(例如ajax请求)。或者(ajax),或等到页面加载后检测并设置
img src
属性。你到底想做什么?这是背景图像吗?有很多方法可以使用CSS和/或Javascript“动态调整”图像大小。以下是我使用jQuery的意思(不要对我持反对态度,我不久前写过这段代码):使用普通Javascript也可以获得相同的效果,您只需在获取屏幕大小时小心,屏幕大小在不同浏览器中可能会有所不同。注意,刷新以获得不同的图像,单击不同的页面,然后尝试调整大小。脚本位于
head
元素中。在JSP中不可能,因为这是在服务器上运行的。您需要使用客户端Javascript获取该信息并以某种方式(例如ajax请求)将其传递回服务器。要么(ajax),要么等到页面加载时检测并设置
img src
属性。您实际上想做什么?这是背景图像吗?有几种方法可以“动态调整大小”“一个带有CSS和/或Javascript的图像。以下是我使用jQuery的意思(不要反对我,我不久前写过这段代码):普通Javascript也可以获得同样的效果,你只需在获取屏幕大小时小心,不同浏览器的屏幕大小可能会有所不同。注意,刷新以获得不同的图像,单击不同的页面,然后尝试调整大小。脚本在
head
元素中。你能再解释一下最后一个想法吗?基本问题是我的图像目前看起来像这样:服务器:8080/graphs/ChartGen?PID=&minutes=&height=30&width=(60%屏幕宽度)“/>我不知道如何处理屏幕宽度部分,你能再解释一下最后一个想法吗?基本问题是,我的图像目前看起来是这样的:服务器:8080/graphs/ChartGen?PID=&minutes=&height=30&width=(60%屏幕宽度)“/>,我不知道该做什么