8

Web サイトを開発していて、現在すべてのブラウザーでテストしています。現在、firefox でテストしており、event.sourceElement の使用時にエラーが見つかりましたか?

e.srcElement に必要なのは戻り値です。少し下に、PropID が返す値を取得する方法の例を示します。

e.srcElement を使用する Jquery 関数を作成しました。次のようになります。

$(function () {
        $(".DownloadLink").click(function (e) {
            e.preventDefault();

            var PropID = getParameterByName("PropID", e.srcElement.search),
                Token = getParameterByName("Token", e.srcElement.search),
                TrackingNumber = getParameterByName("TrackingNumber", e.srcElement.search);

            $.post("Valuation", { PropID: PropID, Token: Token, TrackingNumber: TrackingNumber}, function (taskId) {

                // Init monitors

                $("#dialog-modal").append($("<p id='" + taskId + "'/>"));
                updateMonitor(taskId, "Started");

                // Periodically update Modal
                var intervalId = setInterval(function () {
                    $.post("Progress", { id: taskId }, function (progress) {
                        if (progress < 50) {
                            updateMonitor(taskId, "Building File");
                        } else if (progress == 50) {
                            updateMonitor(taskId, "Uploading File to FormMobi");
                        } else if (progress >= 100) {
                            clearInterval(intervalId);
                            updateMonitor(taskId, "Complete");
                            window.location.href = "downloadcomplete";
                        }
                    });
                }, 100);
            });
        });

e.srcElement の動作例:

クロムでテストし、検査要素を使用しているときに、次の行が返されることがわかります。

コード行:

PropID = getParameterByName("PropID", e.srcElement.search)

返された結果:

検索: "?PropID=77301&Token=74d30c0e-b4ab-4164-9dfd-f35fd7091cdc&TrackingNumber=367"

そして、必要な PropID の結果を取得できます。


必要な値を返す理由は他にありますか? または、e.srcElement を fireFox で動作させるにはどうすればよいですか?

4

3 に答える 3

23

Firefox では、単純e.targetに作業を呼び出します。e.srcElement[IEでのみ機能する]の代わりに

于 2012-11-28T09:42:15.330 に答える
8
function getTarget(obj) {
    var targ;
    var e=obj;
    if (e.target) targ = e.target;
    else if (e.srcElement) targ = e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
        targ = targ.parentNode;
    return targ;
}

e を渡すと、すべてのブラウザのターゲットが返されます

から:- http://www.quirksmode.org/js/events_properties.html

于 2013-07-11T22:52:13.917 に答える
2

のようにシンプル

var val= (e.srcElement||e.target).value;
console.log(val);
于 2016-08-11T11:29:21.277 に答える