有许多方法可以做到这一点:
没有AJAX
不使用任何AJAX请求,您可以使用下面的代码(只是在CF 9.0测试达到预期的效果。 2和CF10):
<cfset rheight = "
<script type='text/javascript'
src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'>
</script>
<script>
$(document).ready(function() {
$('input.screenHeight').val(screen.height);
alert($('input.screenHeight').val()/4);
})
</script>">
<cfhtmlhead text="#rheight#" />
<input type="text" class="screenHeight" />
在这个例子中,我们正在创建一个包含了jQuery库的引用您的自定义代码来获取屏幕高度的字符串变量。
我们将高度设置为文本输入框的值。然后,我们可以提取该值并将其转换为数字。你可以转换的价值,然后才放入输入框,就像这样:
$('input.screenHeight').val(screen.height/4);
字符串变量在使用cfhtmlhead标签添加到文档的头:
http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7ae9.html
这只能用于原始页面视图。如果您需要在页面更改或响应式设计版面更改后获取尺寸,则需要运行AJAX请求以恢复屏幕尺寸。
没有CFML
当然,你并不需要使用的ColdFusion的。你可以从你的JavaScript单独获得相同数量的转换:
<script type='text/javascript'
src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'>
</script>
<script type='text/javascript'>
var getScreenHeight = function() {
return screen.height;
}
$(document).ready(function() {
var screenheight = getScreenHeight();
console.log(screenheight/4);
})
</script>
但是,它看起来像你需要能够从ColdFusion的屏幕高度响应坚持的价值,就像这样:
随着AJAX和CFML
修订上述JavaScript示例中,我们可以创建一个AJAX请求屏幕高度值发布到一个新的页面.CFM:
<script type='text/javascript'>
var getScreenHeight = function() {
return screen.height;
}
$(document).ready(function() {
var screenheight = getScreenHeight();
$.get("screensize.cfm",
{ screenheight: screenheight },
function(data) {
console.log('screen height has been set in the session scope: ' + data);
}
)
})
</script>
这是最基本的屏幕尺寸。CFM可以包括以下内容:
<cfsetting showdebugoutput="false" />
<cfparam name="URL.screenheight" type="numeric" default="800" />
<cfset session.screenheight = URL.screenheight />
<cfoutput>#session.screenheight#</cfoutput>
(这不包括任何确认或失败捕获,你可能需要包括)
假设你的应用程序会话管理启用,这将为您送上价值SESSION范围可供整个应用程序使用。
这里要记住的一件事是,在刷新之前,SESSION范围中的值将不能用于原始调用页面(发出AJAX请求的页面)。
我希望有帮助。
JavaScript不会在服务器上运行,即使它在服务器上运行,最多也只能得到服务器的'screen.height' – Esailija 2012-07-09 07:32:03
@Esailija我意识到这一点。我使用的代码能够获取屏幕大小,但是以字符串格式。我的问题是,如何将此字符串转换为数字。 – 2012-07-09 07:38:01
如果是这种情况,并且您正在客户端执行此操作,请删除所有服务器端的东西,因为它当时并不相关。 – Esailija 2012-07-09 07:39:58