2012-07-04 45 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