2012-07-04 58 views
0

這是一個難以解釋的問題,但我會盡我所能!我使用JavaScript編寫我的應用程序,並使用Titanium IDE。JS - 獲取當前網站名稱(類似於Safari)

所以,我試圖爲我的應用程序創建一個書籤菜單。我需要它從本質上獲取網站的名稱/內容標題,這樣書籤的標題看起來會很體面,而不僅僅是直接路由並將網站的Url填充到表格中。

舉的一個例子就是我講的,

Notice The Naming Of Each Bookmark

如果你看看,你可以看到,它說Apple,不http://www.apple.comapple.com,而這正是我試圖複製。如果您有一個功能,您可能有一些或知道一些,請包括它!否則,任何輸入都會有幫助!

感謝

更新:我發現了一個解決方案,如果我用了XCode,也爲鈦,對於那些有興趣。我知道document.title是這裏的關鍵,但是在Titanium中運行它,但是,它有點不同。我會在下面發表我的結論!

+2

'document.title'? – user123444555621

回答

1

我找到了解決方案!

對於Xcode中:

- (void)webViewDidFinishLoad:(UIWebView *)webView{ 
    NSString *theTitle=[webView stringByEvaluatingJavaScriptFromString:@"document.title"]; 
} 

鈦:

theTitle = webView.evalJS("document.title");

1

它可能不是所有網站的工作,也許有人爲可以改善它,但這裏是JavaScript的一個解決方案:

var sitename = location.hostname; 
sitename = sitename.replace("http://", ""); 
sitename = sitename.replace("https://", ""); 
sitename = sitename.replace("www.", ""); 
sitename = sitename.substring(0, sitename.indexOf(".")); 

在上述方案中,我們得到的主機名,然後提取從子主機名開始到第一個句號。這樣我們可以刪除主機名的.com部分。

我們不能使用sitename.lastIndexOf();,因爲如果我們有一個.co.uk域,我們最終會得到類似example.co的東西。

希望這會有所幫助!

+0

聽起來像個好主意。我還沒有能夠測試它,但是當我有機會時,我會回到你身邊! – JTApps

+0

謝謝!我很高興你覺得它有用。我相信它可以得到改進,因爲我認爲它可能會在子域名上打破。 – starbeamrainbowlabs

+0

好的,嗯,我認爲這至少會比我目前的工作更好。在這一點上,它實際上並不能很好地工作,我會嘗試修復它,但它現在每次都會返回:'http:// www' – JTApps