【问题标题】:Getting screen width as a variable in jsp在jsp中获取屏幕宽度作为变量
【发布时间】:2012-08-14 06:40:14
【问题描述】:

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

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

干杯

【问题讨论】:

  • 在 JSP 中不可能,因为它在服务器上运行。您需要使用客户端 Javascript 来获取该信息并以某种方式将其传递回服务器(例如 ajax 请求)。
  • 要么(ajax),要么等到页面加载检测并设置img src 属性。你到底想做什么?这是背景图吗?有一些方法可以使用 CSS 和/或 Javascript 来“动态调整”图像的大小。
  • 这就是我使用 jQuery 的意思(不要反对我,我之前写过这段代码):huckabee-inc.com/en/index.html 使用纯 Javascript 可以获得相同的效果,你只需要获取屏幕尺寸时要小心,这可能因浏览器而异。注意,刷新以获得不同的图像,点击不同的页面,然后尝试调整大小。该脚本位于head 元素中。

标签: javascript css jsp


【解决方案1】:

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

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

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

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

【讨论】:

  • 你能解释一下最后一个想法吗?基本问题是我的图像目前看起来像这样: server:8080/graphs/ChartGen?PID=<%= rs.getInt("PID")%>&minutes=&height=30&width= (60% 屏幕宽度)"/> 我不知道如何处理屏幕宽度部分
【解决方案2】:

我有同样的问题,但后来意识到我可以通过以下方式解决它:
有一个启动页面,例如 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>

在“myPage.jsp”页面中,收集 Java 代码中的变量“rows” 就可以开始了!

【讨论】:

    猜你喜欢
    • 2013-10-11
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    相关资源
    最近更新 更多