0

こんにちは、スクリプトに問題がある人がいます

HTMLのURLをロードするタブフィールドがいくつかあります

ロードしたhtmlでそのURLのパラメータを取得する必要があります

<div id="tabs">
<ul>
    <li><a href="hosts/timeline.html?ip=${ipValue}">Timeline</a></li>
</ul>

これは私のtimeline.htmlファイルの内容です

<script id="timelineTmpl" type="text/x-jquery-tmpl"> 

{{each response}}
    <li><b>${time}</b><br />
    {{each items}}
            ${icon}: <em>${text}. </em> <br />
    {{/each}}   
{{/each}}

</li>
</script>

<ul id="timeline"></ul>


<script type="text/javascript" charset="utf-8">

    function getURLParam(urlSearch, param) {
        p = urlSearch.split(/[&?]/);
        p = _.reject(p, function(e) { return e == "" });
        p = _.map(p, function(e) { return e.split("=")});   
        p = _.reduce(p, function(memo, a) {memo[a[0]] = a[1]; return memo; }, {});
        return p[param]
    }

    var request = $.ajax({
        type: 'GET',
        url: 'ajax/hosts/timeline.xsp?ip='+getURLParam(location.search, "ip"),
        dataType: 'json'
    });

    request.done(function(data){
        $("#timelineTmpl").tmpl(data).appendTo("#timeline");
    });

    request.fail(function(jqXHR, textStatus, errorThrown) {
        console.log(errorThrown);
        console.log(textStatus)
    });

これで、関数getURLParamは未定義を返します

渡したIP値を取得するにはどうすればよいですか?

わかりました、それは私がtimeline.htmlを要求する方法でしょうか?

4

2 に答える 2

2

私はまったく同じ問題を抱えています。提供されたリンクもあなたの質問には答えません。解決できなかったので、役立つ回避策を使用しました。任意の DOM 要素にデータを追加するだけです。

たとえば、テンプレート ドキュメントでは次のようになります。

$(document).ready(function() {
    $('#tabs').data('ip', '${ipValue}');
});

次に、timeline.html で次のことができます。

 url: 'ajax/hosts/timeline.xsp?ip=' + $('#tabs').data('ip')

それが役に立てば幸い、

于 2012-06-25T16:45:31.890 に答える
0

まず、この hosts/timeline.html を hosts/timeline.php に変更します。HTML は、そのように渡されたパラメーターの操作方法を知っているとは思いません。その後、再試行します。正規表現を使用する場所に注意してください。複数のパラメーターと値を持つ可能性があるため、split(/[&?]+/) を使用する必要があります。

于 2012-06-14T08:53:44.860 に答える