如何在某个浏览器宽度上运行vbscript代码

时间:2014-09-15 11:35:44

标签: javascript cookies vbscript asp-classic

我将客户网站变成了响应式网站,他们的主页内容中有很多vbscript。在移动宽度时,他们删除了大量内容,这意味着有很多代码被执行但由于display:none

而无法显示

当你达到最小宽度768px时,有没有办法运行vbscript代码?

我考虑使用javascript获取屏幕宽度并将其存储为cookie并使用vbscript获取cookie以获取屏幕宽度:

<SCRIPT LANGUAGE="javascript"> 
var width = screen.width; 
document.cookie = 'YourDomain=ScreenWidthB='+width; 
</SCRIPT> 
<%Dim ScreenWidth%> 
<%ScreenWidth=request.cookies("YourDomain")("ScreenWidthB")%> 

但我觉得可能有更好的解决方案。另外上面的代码给出了我认为我的显示器的宽度,而不是浏览器的宽度

1 个答案:

答案 0 :(得分:3)

这不是你用任何服务器端语言做的事情。

您可以使用Bootstrap Grid System,它具有内置网格系统来处理响应大小调整。

或者您可以使用CSS来定义具有特定视口大小的元素的样式,使用CSS @media标记:

你的CSS看起来像这个例子:

div {width:100px;}

@media (min-width:768px) {
   div { width: 50px; }
}

这样做会使所有div的宽度为100px,但当浏览器为768px或更大时,它会将div大小更改为50px,如@media中所定义的那样1}}标签。

因此,您可以使用VBScript在页面中生成CSS脚本,而无需编写任何JavaScript代码。但Bootstrap可能是您轻松/无缝地构建响应式设计的最佳选择。你可能想看一下。


编辑:Since OP has clarified not to even load the content

您可以在javascript中创建一个cookie,并在VBScript中读取它以检查视口。

您可以使用jQuery

  $(window).resize(function(e){
     var w = $(this).width();
     if(w>768) document.cookie = "viewport=768;";
     else document.cookie = "viewport=;";
  });

这将在用户调整窗口大小的任何时候绑定事件侦听器,检查它的大小,如果超过768px,它将写入cookie或如果没有则为空。 然后使用Request.Cookies("viewport")

检查视口cookie

或者更好,因为您关注性能,您可以在达到特定视口大小时使用Ajax构建页面。

同样,您可以使用jQuery来绑定窗口调整大小事件。

  contentloaded = false;
  $(window).resize(function(e){
     var w = $(this).width();
     if(w>768 && !contentloaded) {
        $.get(url,function(data){
           $("div").html(data);
           contentloaded = true;
        });
     }
  });

我会使用ajax来执行此操作,因为我想要显示内容,而无需用户必须使用Cookie解决方案刷新屏幕。