2012-01-30 59 views
1

首先,我的整個網站工作正常。到目前爲止,所有的頁面都沒有URL參數。現在問題開始了。我有一個Flash橫幅,必須是Apple移動設備上的PNG靜態圖像。它很好用,直到我用參數創建一個頁面(例如:mysite.com/Controller1/Page1/1)。只要我有一個參數,就會出現橫幅(flash和PNG)。阻止javascript正常工作的URL參數?

這裏是我的iOS.js:

if (navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i)) 
{ 
    alert("This was called - Mac mobile devices"); 
    document.write('<style type="text/css"><!--#swf{display:none;}--></style>'); 
} 
else { 
    alert("This was called - PC"); 
    document.write('<style type="text/css"><!--#no-swf{display:none;}--></style><script src="js/swfobject_modified.js" type="text/javascript"></script>'); 
} 

這裏是我的部分觀點報頭(從_layout只提取其中的行爲是一樣的)摘要:

@Html.JsScript("../../Scripts/iOS.js") 

<div id="swf"> 
    MY FLASH BANNER 
</div> 
<div id="no-swf"> 
    MY STATIC IMAGE 
</div> 

當我嘗試正常頁面(無參數),我總是有消息框This was called - PC,但是當我添加一個參數(甚至在同一頁!)時,我沒有收到任何消息。

也許這是一個路由問題?我簡化到最大隻留下一條路線:

routes.MapRoute(
     null, // Nom d'itinéraire 
     "{controller}/{action}/{id}", // URL avec des paramètres 
     new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Paramètres par défaut 
    ); 

對發生了什麼事情有所瞭解?

+0

通常,URL的上下文中的「參數」指的是查詢中的某些內容,如'/ path?param-name = param-value'。你在「mysite.com/Controller1/Page1/1」中的參數是什麼意思? – 2012-01-30 22:05:05

+0

mysite.com/Controller1/Page1/1等於mysite.com/Controller1/Page1//path?id=1。它只是更清潔。當然它需要設置。 – Mathieu 2012-01-30 22:15:33

+0

所以「mysite.com/Controller1/Page1」的作品,但「mysite.com/Controller1/Page1/1」不? – 2012-01-30 22:20:10

回答

1
@Html.JsScript("../../Scripts/iOS.js") 

當你的元素添加到路徑,你需要一個../添加到您的相對URL或使用<base href="...">,以確保相對URL解析到相同的絕對URL。

也許上面應該成爲

@Html.JsScript("../../../Scripts/iOS.js") 

,或者你可以添加

<base href="http://mysite.com/Controller1/Page1/"> 

靠近你的頁面的頂部。

http://www.w3.org/TR/html4/struct/links.html#h-12.4

在HTML中,鏈接和參考到外部圖像,小應用程序,表單處理程序,樣式表,等等總是由URI指定。相對URI根據可能來自各種來源的基本URI來解析。 BASE元素允許作者明確指定文檔的基本URI。

如果存在,BASE元素必須出現在HTML文檔的HEAD部分中,位於任何引用外部源的元素之前。由BASE元素指定的路徑信息僅影響元素出現的文檔中的URI。

+0

就是這樣!感謝一百萬,它現在就像一個魅力! – Mathieu 2012-01-30 22:34:04

+0

@Mathieu不客氣。快樂的參數化。 – 2012-01-30 22:58:09