Windows Metro:img标记中的链接无效

时间:2012-07-20 13:29:07

标签: windows-8 microsoft-metro

我正在使用HTML + Javascript在Metro中开发应用程序。用于在img标记中创建链接时,我的链接无效:

<h4><a href="/pages/childpage.html">Go to child page</a></h4>
<a href="/pages/childpage.html"><img src="/images/home/child.jpg" /></a>

第一个链接正常,第二个链接没有。当我点击图片时,它会阻止该应用。

对于链接,我正在使用Application.PageControlNavigator as suggested in the documentation。我的JS有:

(function () {
   "use strict"; 

   function linkClickEventHandler(eventInfo) {
       eventInfo.preventDefault();
       var link = eventInfo.target;
       WinJS.Navigation.navigate(link.href);
   }

   WinJS.UI.Pages.define("/pages/home/home.html", {
       ready: function (element, options) {
           WinJS.Utilities.query("a").listen("click", linkClickEventHandler, false);
           WinJS.UI.processAll();
       }
   });
})();

3 个答案:

答案 0 :(得分:2)

问题是link.href在标记内部使用标记时返回src字符串而不是href字符串。在您的情况下,link.href返回“/images/home/child.jpg”。我认为这是一个错误,而不是一个功能。解决方法是不使用href.link。

答案 1 :(得分:2)

你可以这样做:

使用<a>标签的onclick属性并调用handler()函数,如下所示:

<a onclick="handler();"><img src="/images/home/child.png" /></a>

处理函数的主体如下所示:

function handler()
{
     WinJS.Navigation.navigate('/pages/childpage.html');
}

对我来说很好。

答案 2 :(得分:0)

按块,我认为你的意思是“挂”?单击图像时是否调用linkClickEventHandler?