Javascript 防止在dynamics 365中双击时打开记录
我已经为抽象实体设置了一个队列。我试图阻止双击打开记录。我已经为事件设置了一个处理程序,并在事件对象上调用.stopPropagation()和.preventDefault(),它将继续打开窗口 不确定我是否遗漏了什么明显的东西。。这是我的密码:Javascript 防止在dynamics 365中双击时打开记录,javascript,dynamics-365,Javascript,Dynamics 365,我已经为抽象实体设置了一个队列。我试图阻止双击打开记录。我已经为事件设置了一个处理程序,并在事件对象上调用.stopPropagation()和.preventDefault(),它将继续打开窗口 不确定我是否遗漏了什么明显的东西。。这是我的密码: function attachDoubleClick() { var grid = document.getElementById("gridBodyTable"); if (grid == null) { setTi
function attachDoubleClick() {
var grid = document.getElementById("gridBodyTable");
if (grid == null) {
setTimeout(function () { attachDoubleClick(); }, 2000); //if the grid hasn’t loaded run this again
return;
}
function handler(e) {
var abstractId = document.getElementsByClassName("ms-crm-List-SelectedRow").item().getAttribute("oid").replace("}", "").replace("{","");
XrmSvcToolkit.retrieve({
entityName: "prod_abstract",
id: abstractId,
select: ["prod_abstractstatus"],
async: false,
successCallback: function (result) {
if (result.prod_abstractstatus.Value != 108410000) {
alert("This abstract is already being worked on or is completed.");
e.stopPropagation();
e.preventDefault();
console.log(e);
return;
}
},
errorCallback: function (error) {
console.log(error);
}
});
}
grid.ondblclick = handler;
}
问题是我需要用第三个参数true添加ventlistener。(这是useCapture参数。)结束代码如下所示:
function attachDoubleClick() {
var grid = document.getElementById("gridBodyTable");
if (grid == null) {
setTimeout(function () { attachDoubleClick(); }, 2000); //if the grid hasn’t loaded run this again
return;
}
grid.addEventListener("dblclick", handler, true);
}
function handler(e) {
console.log(e);
var abstractId = document.getElementsByClassName("ms-crm-List-SelectedRow").item().getAttribute("oid").replace("}", "").replace("{", "");
XrmSvcToolkit.retrieve({
entityName: "prod_abstract",
id: abstractId,
select: ["prod_abstractstatus"],
async: false,
successCallback: function (result) {
if (result.prod_abstractstatus.Value != 108410000) {
alert("This abstract is already being worked on or is completed.");
e.stopPropagation();
e.preventDefault();
return;
}
},
errorCallback: function (error) {
console.log(error);
}
});
}
您是否尝试了“return false;”而不是在成功回调中返回?