㈠ asp.net中如何判斷關閉瀏覽器

後台是沒有辦法直接捕獲到的,不過可以通過在頁面中加入以下腳本讓瀏覽器關閉時觸發一次提交
<script>
window.onunload=function(){
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey) //如果是關閉瀏覽器而不是刷新頁面
__doPostBack('closing',''); //觸發一次提交
}
</script>
然後即可在後台此動作進行捕獲
protected void Page_Load(object sender, EventArgs e)
{
if (Request["__EVENTTARGET"] == "closing")
{

...最後的處理...
Response.End(); //因為是最後的處理,不需要頁面輸出,所以執行到這里就可以了
}

...原有的正常代碼...
}

有些情況下,頁面不會自動生成__doPostBack函數即其相關控制項(如:頁面上只有Button控制項時),可以在頁面上手工添加以下代碼:
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>

以上方法對於用戶通過任務管理器中止IE進程之類的「狠招」沒有任務辦法...
另外還有個缺點:
1.只有在用戶關閉瀏覽器時才會觸發,如果是頁面跳轉就捕獲不到了
2.當然也可以把那個腳本改成
<script>
window.onunload=function(){ __doPostBack('closing','');}
</script>
這樣,不管如果都會觸發提交,但是問題更大,因為即使是用戶進行正常的頁面提交,比如點擊頁面上的某個按鈕也會觸發這個事件!
3.解決辦法是使用UpdatePanel,這樣普通的提交是不會刷新頁面的,也就不會觸發window.onunload事件了。但是還有一個問題,就是當第一次頁面發生跳轉時(不管是後台控制還是前面用戶操作的)都會使頁面變成一個空白頁面。因為那個腳本強制讓頁面刷新了一下,導致跳轉失效,而後台捕獲到了closing參數,處理完後終止了輸出,導致頁面變成了空白頁。
4.也有辦法解決後台控制的跳轉問題,前是前台用戶修改地址欄這樣的跳轉就沒有辦法了,不想細寫了,反正我沒找到一個完美的解決辦法。
PS:以上方法還有一個惡心的用途,把後台的那句"Response.End();"去掉後,就可以讓用戶永遠離開你的頁面(包括修改地址欄和點擊收藏夾等),除非關閉瀏覽器

另外再提供一個解決的思路,可以較好的實現頁面關閉或頁面跳轉後的處理,但是實現起來相對麻煩些。就是用ajax做「心跳」:當用戶打開你的頁面時,保存一個對應的時間戳以及頁面關閉後要做的處理中用到的相關信息。在頁面中加入一個時間觸發器,每過一段時間(比如8秒)就用ajax提交一次,刷新用戶對應的時間戳。(也可以在global的sessionstart中進行時間戳的創建,並用sessionid作為標識進行刷新,這樣可以不局限於一個頁面,做到僅當用戶關閉所有打開你的站點的窗口之後才觸發,靈活性非常高)另外用一個線程,每過一段時間去檢查這個保存的時間戳(比如20秒),如果發現每個時間戳和系統當前時間相差大於等於閥值(比如20秒)即認定用戶關閉了瀏覽器或跳轉到別的頁面了,然後就可以進行你要的處理了。

寫得很亂,不知道你能看明白不?

㈡ ASP.NET C# 怎麼根據瀏覽器顯示不同語言版本的網頁

一般的做法是 做兩套網站
在根目錄建兩個文件夾 存放頁面,
比如我現在做的項目就是這樣 分英法 en/ fn/ 復制兩份頁面
html切換就可以 直接獲得當前的location 然後跳轉
localhost:11427/en/index.aspx
localhost:11427/fn/index.aspx

㈢ 如何運行ASP.NET網站,並在IE里瀏覽界面,謝啦!

你是用vs2003,如果是2003的話就要裝IIS,要把程序文件設置成web共享目錄就是網站虛擬目錄。
vs2005或08 不用裝IIS有內置的,直接拖個sqlDataSource數據源控制項建立連接,然後直接綁定GrideView查看就行。
在工具的aspx頁面 重新選擇下瀏覽方式為IE就行了,默認好像都是在工具裡面吧

㈣ 怎樣兼容多種瀏覽器 asp.net

現在網頁都是用div+css來做,這個也是瀏覽器最容易出現兼容問題的地方,一般現在做網頁要只測試的瀏覽器有IE6,IE7,IE8,火狐。IE6是目前使用量最多的,所以要著得測試IE6瀏覽器的兼容問題,現在IE9也已經出來了,可能再過段時間也測試IE9的兼容性。這個是div+Css教案: http://www.cssk8.com/index.html網站里有多種兼容性解決方法

㈤ asp.net用IE瀏覽器打開都是代碼

伺服器不支持.net的 緣故.

有時候我在機器上建立WEB伺服器,只能瀏覽html\asp,.net就不行。

需要支持.net才行

㈥ asp.net怎麼做到兼容不同瀏覽器

你可以用 IETester 進行多內核測試..在用火狐 谷歌進行測試

asp.net 主要是資料庫的 不同瀏覽專器顯示不同跟屬.net沒有關系的

主要是html 一般都是多瀏覽器測試 寫差不多的

如果IE7可以看 IE8加上
<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
可以跟7用一樣的

別的就能一個一個測試了

㈦ asp.net 後台控制瀏覽器

你這個只能打開本地瀏覽器的就是伺服器上的瀏覽器 不是客戶端 而且應該也不能打開本地瀏覽器 因為iis是個服務 服務在一般情況下是不能打開普通運用程序

㈧ asp.net怎麼設置瀏覽器客戶端緩存

1. Expires:+過期時間

表示在指定時間後瀏覽器緩存失效,需要注意的是這兒的過期時間必須是HTTP格式的日期時間,其他的都會被解析成當前時間「之前」,緩存會馬上過期,HTTP的日期時間必須是格林威治時間(GMT),而不是本地時間。舉例:

㈨ 急急急!!!asp.net怎麼調用瀏覽器

asp.net本身就是網站開發吧? 需要瀏覽器才能運行的吧?
還要怎麼調用瀏覽器?
如果是要實現列印功能
做一個按鈕,加個onclick事件
javascript完成
function print(){
window.print();
}

㈩ asp.net里怎麼判斷用的瀏覽器是IE還是谷歌

用JavaScript獲得。

以下代碼轉自http://www.cnblogs.com/wqing/archive/2012/08/13/2636626.html

JS獲取瀏覽器信息
瀏覽器代碼名稱:navigator.appCodeName
瀏覽器名稱:navigator.appName
瀏覽器版本號:navigator.appVersion
對Java的支持:navigator.javaEnabled()
MIME類型(數組):navigator.mimeTypes
系統平台:navigator.platform
插件(數組):navigator.plugins
用戶代理:navigator.userAgent

DEMO:
Js代碼
<script language="JavaScript">
<!--
function getOs()
{
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>0) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>0){
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){
return "Gecko";
}

}
alert("您的瀏覽器類型為:"+getOs());
-->
</script>