ボタンのクリックを任意のドメインからデータベースに記録する追跡ツールを作成しています。
Web Worker を使用したかったのですが、これをサポートするブラウザーのリストが限られているため、ブラウザー検出を追加して、それらを正しいパスに送りました。
私の問題は、ブラウザー検出を IE に追加すると、サーバーの応答が得られなくなったことです (投稿、リダイレクト、何もありません) 何か間違ったことをしていますか?
これはボタンが検出されている場所です
if ((isIE) && (isIE == true)) {
function addBtnClickListener(e) {
var btnClicked = this;
var eventType = "button.click";
var ctrBtnText = btnClicked.value;
track(btnClicked, eventType, '', '', ctrBtnText, '', '', '', btnClicked);
return false;
}
}
else if ((isChrome) && (isChrome == true) || (isFirefox) && (isFirefox == true) || (isSafari) && (isSafari == true) || (isOpera) && (isOpera == true)) {
//WEB WORKERS
if (typeof SharedWorker != 'undefined') { //shared web worker is supported
//Shared Worker
function addBtnClickListener() {
var btnClicked = this;
var eventType = "button.click";
var ctrBtnText = btnClicked.value;
track(btnClicked, eventType, '', '', ctrBtnText, '', '', '', null, btnClicked);
return false;
}
}
else if (typeof (Worker) != "undefined") { //web worker is supported
//Web Worker
function addBtnClickListener(e) {
e.preventDefault();
var btnClicked = this;
var eventType = "button.click";
var ctrBtnText = btnClicked.value;
track(btnClicked, eventType, '', '', ctrBtnText, '', '', '', btnClicked, null);
//this.click();
return true;
}
}
else {
//function addBtnClickListener(e) {
var btnClicked = this;
var eventType = "button.click";
var ctrBtnText = btnClicked.value;
track(btnClicked, eventType, '', '', ctrBtnText, '', '', '', btnClicked);
return false;
//}
}
}
else { }
これは彼らが記録されている場所です
if ((isIE) && (isIE == true)) {
console.log("IE");
doRequestMethod(url);
function GetXmlHttpObject() {
if (window.XMLHttpRequest) {
//for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject) {
//for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
function doRequestMethod(url) {
var xmlhttp = GetXmlHttpObject();
if (xmlhttp == null) {
console.log("Browser does not support HTTP Request");
return;
}
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(url);
}
}
else if ((isChrome) && (isChrome == true) || (isFirefox) && (isFirefox == true) || (isSafari) && (isSafari == true) || (isOpera) && (isOpera == true)) {
//WORKS AS IT SHOULD
}
else { }
IE 検出検出を削除すると、フォームは IE で正しく機能しますが、何か問題がありますか?