0

このコードがあります。データは、応答サーブレットからの行を含むDWRオブジェクトです。img.onclickはIE9を使用して機能しますが、IE8でも機能する必要があります。いくつかのアイデア?ありがとう!

function functionA(data){
  var getPrintCred = function(data) { 
                        var img = document.createElement("img");
                        img.src = "images/image1.jpg";
                        img.style.width="20px";
                        img.style.height="18px";
                        img.alt = data.field1;
                        img.title = getRegimen;
                        img.onclick = function(target) { functionB(target) };
                        return img;
  };
}

function functionB(data){
                var var1= data.target.title;
                var var2= data.target.alt;
                if ( var1 != null && var1 == "IM")
                    var1 = "valueA";
                else
                    var1 = "valueB";
                functionC(var2,var1);
}

function functionC(param1, param2){
 alert ('Using IE 9 works, but IE8 no works...help me!'+param1+'-'param2);
}
4

2 に答える 2

1

targetつまり、8はイベントオブジェクトのプロパティをサポートしていませんsrcElement。プロパティを使用する必要があります。

function functionB(data){
            var var1= (data.target || data.srcElement).title;
            var var2= data.target.alt;
            if ( var1 != null && var1 == "IM")
                var1 = "valueA";
            else
                var1 = "valueB";
            functionC(var2,var1);
}

また、onclickイベントハンドラーにイベントオブジェクトが渡されていないように見えるため、フォールバックとしてwindow.eventを渡すことができます。

img.onclick = function(target) { functionB(target || event) };

http://jsfiddle.net/mowglisanu/wkB6K/

于 2012-11-26T03:36:08.160 に答える
0

以下のものを試してください

function functionA(data){
    var getPrintCred = function(data) { 
        var img = document.createElement("img");
        img.src = "images/image1.jpg";
        img.style.width="20px";
        img.style.height="18px";
        img.alt = data.field1;
        img.title = getRegimen;
        img.onclick = function(target) {
            target = target || window.event;
            functionB(target);
        };
        return img;
    };
}

function functionB(data){
    var var1= data.target.title;
    var var2= data.target.alt;
    if ( var1 != null && var1 == "IM")
        var1 = "valueA";
    else
        var1 = "valueB";
    functionC(var2,var1);
}

function functionC(param1, param2){
    alert ('Using IE 9 works, but IE8 no works...help me!'+param1+'-'param2);
}

IEでは、イベントオブジェクトは引数としてイベントハンドラメソッドに渡されませんが、グローバルプロパティwindow.eventオブジェクトで使用できます。

于 2012-11-26T03:53:06.903 に答える