2012-05-30 33 views
0

我想如果HREF包含spotifyURI顯示選項卡播放列表內一個div。這將用於在選項卡下顯示播放列表。Spotify的應用程序選項卡 - 更新緩存

一步一步,這是我的問題:

  1. 點擊播放列表選項卡,然後點擊「我的playlist1」。
  2. href顯示在選項卡播放列表下的播放列表容器中。 (迄今爲止完美)
  3. 單擊開始選項卡,然後單擊播放列表選項卡。
  4. 而不是顯示播放列表的列表播放列表容器再次顯示。所以最後使用的網址被緩存?
  5. 然後,如果播放列表選項卡再次點擊該URL將被「reseted」和播放列表的列表將顯示和播放列表容器隱患。

我想4.顯示播放清單列表的時候了吧。 有沒有辦法重置或我錯過了什麼?

<script> 
$(document).ready(function() { 
    sp = getSpotifyApi(1); 
    var m = sp.require("sp://import/scripts/api/models"); 
    updateTabs(); 
    m.application.observe(m.EVENT.ARGUMENTSCHANGED, updateTabs); 
    function updateTabs() 
    { 
     console.log(m.application.arguments); 
     var args = m.application.arguments; 
     $('.section').hide(); 
     if (args[1] == "spotify") $("#playlist").html("args:"+args).show(); 
     else $("#"+args[0]).show(); 
    } 
}); 
</script> 

<div id="playlist" class="section">Container for playlist content</div> 
<div id="start" class="section">Welcome</div> 
<div id="playlists" class="section"> 
My <a href="spotify:app:tabtest:playlists:spotify:user:_username_:playlist_uri1">playlist1</a> 
My <a href="spotify:app:tabtest:playlists:spotify:user:_username_:playlist_uri2">playlist2</a> 
</div> 

非常感謝所有回覆!

+0

使用localstorage存儲當前位置? –

+0

感謝您的回覆。 Localstorage嗯,我沒有任何想法如何使用它更新第二次點擊的網址。你有什麼建議嗎? :) – papegoj

+0

我提出了一個使用JQuery語法的解決方案。 –

回答

1

這裏是我將如何進行使用JQuery。

所有你需要使用localStorage的首先:

var stor = sp.require("sp://import/scripts/storage"); 

然後如果爲例,你得到的播放列表的列表,您可以生成列表這樣

for (var i=0; i<d.playlists.length; i++) { 
$('#playlists').append('My <a id="p' + i + '"href="'+ d.playlists[i] +'">playlist1</a>'); 
$('#playlists #p'+i).live('click', function(e) { 
e.preventdefault(); 
stor.set('choosenplaylist', d.playlists[i]); 
}); 
} 

這對存儲現在換時髦時:

if (!stor.get('choosenplaylist')=='') { 
location.href=stor.get('choosenplaylist'); 
} 

好的,這是一個建議,它需要測試r存放到您的應用程序。

+0

非常感謝,這解決了一切!我認爲這是違反安全規定,但我想不是。 :) – papegoj

0

林現在想這一點,我可以重現你的錯誤(即時猜測這是一個錯誤,標籤應該在我看來,更換URL)

但是,直到它固定的,我最好的猜測是在取消您使用適當的播放列表視圖替換內容後,將事件處理程序中的播放列表鏈接捕獲並取消原始事件。

Tab test code (on gist.github.com)

我抽象實際的觀點從事件處理程序綁定,並增加了一個click事件掛鉤,調用抽象視圖粘合劑,而不是「真實」的一個,這也支持深層鏈接到一個應用

+0

非常感謝!我會看看:) – papegoj

+0

我意識到我已經嘗試過這個解決方案。它解決了一個問題並創造了另一個問題。後臺功能停止工作,單擊播放列表後菜單播放列表停止工作。 Spotify Tunigo應用程序似乎已經能夠解決它..如何? – papegoj

+0

我想你應該看看導航/歷史事件,但我還沒有測試過這個,我明天可以看看它..這個鏈接也可能是有趣的:http://stackoverflow.com/questions/8439145/reading-window-history-state-object-in-webkit – possan

相關問題