0

ユーザーに強制せず/に最後に文字を追加するにはどうすればよいですか? URL私はこの素晴らしいサイトのようにと を直接 (なしで)SWFAddress使用して作業を始めています。JavaScriptjQueryFlash

だから、このようなもの:

http://mysite.com/section

// and after click to a specific <a ="#">button</a> get
http://mysite.com/section/#/sub-content

// instead of
http://mysite.com/section#/sub-content

私はそれを行うためにこのコードから始めました:

$(".time_dot, .time_year").click (function () {
    onClickEvent (this);
});

function onClickEvent (dom) {
    var timer = setTimeout (function () {
        SWFAddress.setValue($(dom).parent().attr("id"));
    }, 200);
    // do something else 
}

メソッドは、ボタンがメソッドを上書きするのをsetTimeout避けるために使用されますが、 toを toに変更する方法がわかりません。<a>SWFAddress.setValueURL addressurl.com/content#/...url.com/content/#/...

どうやってやるの?

4

4 に答える 4

2

すでに述べたように、サイトのリロードを強制せずにURLを変更することはできません。そして、私はあなたがそれを望んでいないと思います。(ただし、SWFAddress.setValue()実際にどのように機能するかによって異なります。内部でURLを追跡するだけの場合(ブラウザーのURLを変更せずに)、それを実行できます)

しかし、私はあなたに代わりを与えたかったsetTimeout

$(".time_dot, .time_year").click (function (event) {
    event.preventDefault();
    event.stopPropagation();
    onClickEvent (this);
});

function onClickEvent (dom) {
    SWFAddress.setValue($(dom).parent().attr("id"));
    // do something else 
}

これにより、クリックイベントが発生するのを防ぎ、デフォルトのアクション(リンクをたどる)の変更も防ぎます。

jQueryイベントオブジェクトを参照してください。

于 2010-12-14T20:49:13.993 に答える
1

ページをリロードせずに URL の「パス」部分を変更することはできません。そのため、http://mysite.com/sectionにいる場合、ページをリロードしないとhttp://mysite.com/section/#/sub-contentに移動できません。

于 2010-12-14T20:45:26.703 に答える
0

あなたは

$(".time_dot, .time_year").click (function () {
   setTimeout (function () {
         SWFAddress.setValue("/"+$(this).parent().attr("id")+"/");
    }, 200);

});
于 2010-12-14T20:45:41.653 に答える
0
function fixUrl(url) {  
    return url.replace(/\/?$/,'/');  
}

//or

function fixUrl(url) {  
    return url.match(/\/$/)  
       ? url  
       : url + '/';  
}
于 2010-12-14T20:46:44.887 に答える