需要在页面加载时将javascript结果传递到服务器端

本文关键字:结果 javascript 服务器端 加载 | 更新日期: 2023-09-27 18:02:23

我有一个主页,它加载了我的Default.aspx

我需要使用

获取浏览器版本
function loadHiddenField() 
{       
    document.getElementById("HiddenField1").value =  document.documentMode;
}

这个结果需要传递给我的默认值。aspx页面,以便我可以在用于填充页面的Linq查询中使用它。这一切都发生在我的网站第一次加载。

:
1)输入我的网站网址
2)页面加载,默认显示正确的信息。

我最初试图使用客户端body onload调用该方法,但我意识到这不起作用。所以我需要知道什么是有效的…

请不要告诉我使用HttpBrowserCapabilities,因为这是行不通的。上面的JavaScript就是我需要的。

我被困住了,真的需要帮助。我以前问过这个问题,但是唯一一个试图帮忙的人删除了他的帖子。

需要在页面加载时将javascript结果传递到服务器端

<script>
bDocumentNeedsReload = <%= Session('documentmode') >= 0 : 'TRUE','FALSE' %>
if( document.documentMode ) {
  var xhr = new XMLHttpRequest();
  xhr.open("GET", "setsessiondocumentmode.aspx?mode=" + document.documentMode);
  xhr.send();
  if( bDocumentNeedsReload == TRUE ){
    window.location.reload();
  }
}
</script>

对此持保留态度:我还没有测试过,但你可能知道我要做什么。而且,比我聪明的人可能会给你一个合适的解决方案。而且,我的c#有点过时了。

您可以使用两个不同的页面来解决这个问题。第一个页面加载,它加载的那一刻,它重定向到默认。Aspx传递文档。查询字符串中的documentMode。这样你的浏览器版本就在代码后面了。

function redirect()
{
    document.location = 'default.aspx?mode=' + document.documentMode; 
} 

在页眉中调用redirect()。

在默认的page_load中。你只需要使用Request.QueryString["mode"];

你可以通过Javascript在请求头中设置一个变量(参见这个问题)。下面是一个例子:

<script type="text/javascript">
    function onLoad() {
        var request = new XMLHttpRequest();
        request.open("POST", "/Home/About", true);
        request.setRequestHeader("documentMode", document.documentMode);
        alert(document.documentMode);
        request.send();
    }
</script>

注意,您需要首先调用Open()。也不是所有的浏览器dom都有文档。documentMode设置!这个例子返回到/Home/About,但是你可以在你的服务器上找到你想要的任何端点,甚至可以将这些信息保存到一个cookie中,这样以后的请求就会包含这些信息。

然后,服务器代码可以检查请求头(下面的示例是针对ASP的)。NET MVC):
string documentMode = Request.Headers["documentModel"];

使用基本的ASP。. NET MVC 3网站,在我的About()控制器函数中将documentMode变量设置为'7'。