Javascript Firefox,IE Opera--未定义函数
Javascript Firefox,IE Opera--未定义函数,javascript,Javascript,DoRowApp功能未在FF,即Opera中定义。在铬上工作 function DoRowApp(id) { document.getElementById('ANSWER.TTQ.MENSYS.1.').value = id; document.getElementById('ANSWER.TTQ.MENSYS.2.').click(); return true;} 这是html <a target="_blank" href="javascript:DoRowApp("_405580
DoRowApp
功能未在FF,即Opera中定义。在铬上工作
function DoRowApp(id) {
document.getElementById('ANSWER.TTQ.MENSYS.1.').value = id;
document.getElementById('ANSWER.TTQ.MENSYS.2.').click();
return true;}
这是html
<a target="_blank" href="javascript:DoRowApp("_40558067");" title="Application Form"><img border="0"></a>
这是我们从xml中得到的
<cell>Application Form^javascript:DoRowApp("'||edit.mhd_code||'");^_blank</cell></row>
申请表^javascript:DoRowApp(“| | | edit.mhd| u code””)^_空白的
和往常一样……帮助会很棒的
同时,此功能也起作用:
function DoRow(id) {
'use strict';
var LowerBound, UpperBound, StartAppNo, BaseAppNo, i;
LowerBound = mygrid.getRowIndex(id) - 25;
UpperBound = mygrid.getRowIndex(id) + 100;
StartAppNo = 25;
BaseAppNo = 0;
mygrid.selectRowById(id, true, true, false);
localStorage.clear();
if (mygrid.getRowIndex(id) - 25 > 0) {
StartAppNo = 25;
}
else {
StartAppNo = mygrid.getRowIndex(id);
}
localStorage.setItem("9999", StartAppNo);
if (LowerBound < 0) {LowerBound = 0; }
for (i = LowerBound; i <= UpperBound; i++) {
if (mygrid.getRowId(i)) {
localStorage.setItem(BaseAppNo, mygrid.getRowId(i));
BaseAppNo++;
}
}
document.getElementById('ANSWER.TTQ.MENSYS.1.').value = id;
document.getElementById('ANSWER.TTQ.MENSYS.2.').click();
return true;}
函数DoRow(id){
"严格使用",;
变量LowerBound,上限,StartAppNo,BaseAppNo,i;
LowerBound=mygrid.getRowIndex(id)-25;
上限=mygrid.getRowIndex(id)+100;
StartAppNo=25;
BaseAppNo=0;
mygrid.selectRowById(id,true,true,false);
localStorage.clear();
if(mygrid.getRowIndex(id)-25>0){
StartAppNo=25;
}
否则{
StartAppNo=mygrid.getRowIndex(id);
}
localStorage.setItem(“9999”,StartAppNo);
如果(LowerBound<0){LowerBound=0;}
对于(i=LowerBound;i我建议您将javaScript从xml中释放出来:
<cell>Application Form^'||edit.mhd_code||'</cell>
要确保它是最顶部的框架,请使用
window.top.location.href = "url";
要打开新窗口,请使用
进一步阅读
如您所见,要想为编写跨浏览器javaScript代码打下坚实的基础,强烈建议使用jQuery。编写简单javaScript的唯一其他方法是只使用最新的浏览器版本,但如何告诉用户
在jQuery中,上面的内容如下所示:
$(function () { // simplified jQuery(document).ready(function () {
// Enum all elements class="RowButton" and add click handler
$(".RowButton").click(function (e) {
e.preventDefault();
// Call your function
DoRowApp($(this).attr("data-rowId"));
});
});
由于看起来您是javaScript初学者,我强烈建议您不要使用w3schools,请阅读why on!更好阅读
- 对于jQuery
我强烈建议您使用事件处理程序,而不是href
中的javascript:
。我的Chrome安装是最新的,并且没有该功能。为什么不在链接的onclick
事件上触发函数,然后调用preventDefault()
因此它可以防止单击时元素的默认行为?href=“javascript:DoRow(“\u 40558067”);“
引用无效。您可以执行”“
或””
-查看语法高亮显示html颜色的方式。@Bergi是的,但这是一个丑陋的选项;)我还建议您按照@Rocket的注释,将javascript:
移到基于脚本标记的事件处理代码中。要维护\u 40558067
,应该将该数据移到类似data rowid
的属性或其他属性中。@19Oggs:您可以更改xml源吗?
<a href="#" class="RowButton" data-rowId="_40558067" title="Application Form"><img border="0"></a>
function DoRowApp (rowId) { /**/ }
// Simplified onLoad
window.onload = function () {
// Enum all elements with class="RowButton"
var rowButtons = document.getElementByClassName("RowButton");
for (var i = 0; i < rowButtons.length; i++) {
// Closure for i and rowButton
(function (i, rowButton) {
// get the data-rowId attribute
var rowId = rowButton.getAttribute("data-rowId");
// Simplified addEventHandlerListener
rowButton.onclick = function () {
// call your function
DoRowApp(rowId);
// return false to prevent a href
return false;
};
})(i, rowButton[i]);
}
};
window.location.href = "url";
window.top.location.href = "url";
window.open(url, "_blank");
$(function () { // simplified jQuery(document).ready(function () {
// Enum all elements class="RowButton" and add click handler
$(".RowButton").click(function (e) {
e.preventDefault();
// Call your function
DoRowApp($(this).attr("data-rowId"));
});
});