Terdapat acara onclick untuk butang pada halaman Klik mencetuskan js dan menghantar permintaan ajax ke latar belakang Selepas beberapa siri pertimbangan, latar belakang mengembalikan url ke js
<a class="a" id="k_id" href="javascript:void(0);" onclick="test($(this),id1,id2);"></a>
function test(){
//發(fā)送ajax請(qǐng)求...返回一個(gè)url
var url = "ajax請(qǐng)求返回的url";
//js操作將返回的url賦值到頁(yè)面上的a標(biāo)簽,然后js模擬a標(biāo)簽點(diǎn)擊事件
$(oElement).attr("href",url);
$(oElement).removeAttr("onclick");
var id = $(oElement).attr("id");
document.getElementById(id).click();//這里點(diǎn)擊a標(biāo)簽
//這樣的操作會(huì)被瀏覽器攔截,
}
求解
擁有18年軟件開(kāi)發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
Anda boleh melompat terus ke url Mengapa anda mahu mensimulasikan klik Direct window.location.href = url
onclick memantau acara klik, jadi ia mula-mula mencetuskan panggilan ke kaedah ujian, dan terus memanggilnya berulang kali, tetapi lompatan herf tidak boleh dicetuskan
Selepas menghantar ajax, tidak perlu mensimulasikan acara klik tag, cuma tetapkan location.href = URL yang perlu dilompat
Apabila melompat ke halaman, tidak perlu mengeluarkan a
的 onclick
事件;
需要去除的話當(dāng)前方式直接 t.onclick = null;
hanya
<a class="a" id="k_id" href="javascript:void(0);" onclick="test(this)">123123</a>
function test(t) {
var url = "http://www.baidu.com";
t.setAttribute("href", url);
t.onclick = null;
t.click();
}
Anda boleh mencubanya
Buka halaman baharu: window.location.href = url;
Buka tetingkap baharu: window.open(url);
Bukankah lebih baik menggunakan window.location.href secara terus?
Teg
a mempunyai acara klik lalai Dianggarkan bahawa onClick bercanggah dengan acara lalai.
Oleh kerana terdapat operasi tak segerak, penyemak imbas akan memintas window.open()
.
Anda boleh menukar ajax kepada penyegerakan, atau mencari cara untuk mengira url di bahagian hadapan.