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"));

    });

});