1

DoRowAppfunction は FF、IE、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>

いつものように..ヘルプは素晴らしいでしょう.

同時に、この機能は機能します:

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;}

このための HTML は次のとおりです。

<a target="_blank" href="javascript:DoRow("_40558067");" title="Application Form"><img border="0"></a>
4

1 に答える 1

0

javaScript を xml から除外することをお勧めします。

<cell>Application Form^'||edit.mhd_code||'</cell>

またはさらに良い

<cell rowId="'||edit.mhd_code||'">Application Form</cell>

次に、次の HTML を生成します。

<a href="#" class="RowButton" data-rowId="_40558067" title="Application Form"><img border="0"></a>

これで、JavaScript で一般的なイベント ハンドラーを追加できます。

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]); 
    }
};

別の Web ページを「開いている」場所がわかりません。JavaScript で別のページにリダイレクトするのは

window.location.href = "url";

最上位のフレームであることを確認するには、次を使用します

window.top.location.href = "url";

新しいウィンドウを開くには、window.openを使用します。

window.open(url, "_blank");

さらなる読み物

ご覧のとおり、クロスブラウザーの 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 を使用しないでください。http: //w3fools.com で理由を読んでください。よく読む

于 2013-06-26T19:09:04.433 に答える