国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

window.location.href出問題分析思路

2024-07-21 02:04:36
字體:
來源:轉載
供稿:網友

今天在公司給別的同事改bug,其中一個是window.location.href  不起作用

alert(”ok”)
window.location.href = ‘/event/index.php?from_city=’ + site;

上面的alert(”ok”);是不跳轉后用來調試的,頁面反映為現實url的值,但不進行跳轉,分析思路是window.location.href出問題,所以嘗試了常用的調試方式,比如:

判斷是否是在包含頁里面:采用

window.parent.location.href=url; //這個完全否決,因為不是這種情況

采用 window.href location.href document.href均無效

于是跳出判斷函數內部出錯,分析頁面出發該函數的事件,原來是這樣的:

<a href=”javascript:void(0)” onclick=”changesite(’200′)”>

發現問題:<a href=”javascript:void(0)” ,于是修改為:

<a href=”javascript:changesite(’200′)”>

于是一切正常!

為什么會發生這個問題呢?我們來看看javascript:void(0) :

javascript中void是一個操作符,該操作符指定要計算一個表達式但是不返回值。

void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression

expression 是一個要計算的 javascript 標準的表達式。表達式外側的圓括號是可選的,但是寫上去是一個好習慣。 (實現版本 navigator 3.0 )

你可以使用 void 操作符指定超級鏈接。表達式會被計算但是不會在當前文檔處裝入任何內容。

下面的代碼創建了一個超級鏈接,當用戶點擊以后不會發生任何事。當用戶點擊鏈接時,void(0) 計算為 0,但在 javascript 上沒有任何效果。

<a href=”javascript:void(0)”>單擊此處什么也不會發生</a>

下面的代碼創建了一個超級鏈接,用戶單擊時會提交表單。

<a href=”javascript:void(document.form.submit())”>
單擊此處提交表單</a>

對于jquery 和yui等前端框架來說他們都有阻止默認事件的方法,在調用window.location.href 等其他重定向方法之前阻止掉連接的默認事件就可以哈

比如

$(’#changesite-panel a.city’).click(function(ev){
ev.preventdefault();
changesite($(this).attr(’rel’));
});
function changesite(site){
window.location.href = ‘/event/index.php?from_city=’ + site;
}
})();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海口市| 绥芬河市| 凉城县| 五大连池市| 凤城市| 涿州市| 太保市| 东乡县| 淳安县| 和田市| 郑州市| 宜良县| 湖南省| 秦皇岛市| 平遥县| 沂水县| 通化市| 兴安盟| 福鼎市| 定日县| 札达县| 徐州市| 丰县| 都安| 朝阳区| 深泽县| 金华市| 宝丰县| 呼伦贝尔市| 汨罗市| 平武县| 大田县| 青铜峡市| 石阡县| 营山县| 桂阳县| 嘉黎县| 博湖县| 嵩明县| 泾源县| 耒阳市|