0

私たちのサイトでは、<body>タグはさまざまなdata-*="*"属性を保持しています:

<body data-someData="someValue" data-someOtherData="someOtherValue">

他のページでこれらの属性の値を取得する必要があります。そのため、jQuery AJAX$.getを使用してページの HTML を取得しているため、これらのデータ属性を取得しています。

私の現在のスクリプト:

// The call (used on different pages)
var stock = getProductData('stock', '/some/product/url');

// The "GET" function
function getProductData(type, url) {
    var jqxhr = $.get(url, function( data ) {
        console.log('Data found!');
        var $body = $(data).find('body');
        var val = $body.data('stock');
        console.log('Returning Value: "' + val + '"');
        return val;
    }).done(function(){
        // Request is complete
        console.log('getProductData Finished...');
    }).fail(function(){
        console.error( 'getProductData: ' + type + ' = FAIL / URL: ' + url);
    });
}

だから問題は何ですか?さて、 は$(data).find('body').data('stock');として戻ってきますundefined。も試し$(data).find('body').attr('data-stock');ましたが、同じものが返されました。

では、どのように body タグのdata-someData="someValue"属性値を返すことができます$.getか?

上記data-stockの例で使用されている属性は、私の製品ページでは次のようになっています。

<body data-stock="3">

編集:重複ではありません:この質問は、要素の特定の属性の解析に特に言及しています。AJAX を使用してデータを返す方法を尋ねているわけではありません。

4

2 に答える 2

0

おそらくクレイジーなアイデアを提案させてください.あなたは次のサンプルURLを提供しました: var stock = getProductData('stock', '/some/product/url'); ファイルは同じドメインにありますか? もしそうなら、それを非表示の iframe にロードしてから、iframe のドキュメント プロパティにアクセスするのはどうですか? ただし、セキュリティ上の理由からコンテンツが別のドメインにある場合は機能しません。それが同じドメインでwindow.frames["framename"].documentある場合、私が間違っていなければ、IFrame の内容が表示されます。

于 2015-04-17T20:18:30.177 に答える