2012-05-24 40 views
1

我在調用javascript函數時出現問題
我想點擊鏈接打開文件。Javascript函數打開文件沒有調用

這裏是我的代碼:

<script language="javascript" type="text/javascript"> 
var refViewer = null; 

function OpenViewerWindow(image) { 
    return window.open(image, "Viewer", "height=400px,width=550px,menubar=no,scrollbars=yes ,resizable=yes,top=100px,left=234px"); 

} 


function openViewer(image) { 

    if (refViewer != null) { 
     if (refViewer.closed == false) { 
      refViewer.close(); 
      refViewer = OpenViewerWindow(image); 
     } 
     else refViewer = OpenViewerWindow(image); 
    } 
    else 
     refViewer = OpenViewerWindow(image); 
} 


</script> 

<a onclick=javascript:openViewer(@ViewBag.path)><img src="pic.jpg"/></a> 

和控制器:

public ActionResult ActivityPosting(int HobbyDetailID) 
    { 
string filepath = Server.MapPath("~/ePortfolio/PortFolioContent/" + HobbyDetailID + "/ReferenceMaterial/" + item.FilePath); 
ViewBag.path = filepath; 
    return view(); 
    } 

的問題是JavaScript函數沒有得到called.Please幫我

回答

0

試試這個而不是在你的JavaScript OpenViewerWindow函數中(你需要使用file://協議:

return window.open("file://" + image, "Viewer", "height=400px,width=550px,menubar=no,scrollbars=yes ,resizable=yes,top=100px,left=234px") 
+0

問題是openViewer()函數本身是沒有得到所謂的 – user1274646

+0

試着改變你的'了'標籤是這樣的:''哎 – mattytommo

+0

現在即時通訊上得到錯誤window.open()說訪問被拒絕!!! – user1274646

0

確保你傳遞一個字符串:

<a onclick=javascript:openViewer('@ViewBag.path')><img src="pic.jpg"/></a> 

注意單引號。甚至更好的使用Json.Encode,以確保傳遞到您的openViewer javascript函數值的正確的編碼:

<a onclick="javascript:openViewer(@Html.Raw(Json.Encode(ViewBag.path)))"><img src="pic.jpg"/></a> 

也有一個與你的代碼的另一個問題。您使用Server.MapPath來計算url,但此方法返回服務器上文件的絕對路徑。客戶顯然不能以絕對路徑訪問它。你應該使用Url.Content助手傳遞一個網址:

public ActionResult ActivityPosting(int HobbyDetailID) 
{ 
    string filepath = Url.Content("~/ePortfolio/PortFolioContent/" + HobbyDetailID + "/ReferenceMaterial/" + item.FilePath"); 
    ViewBag.path = filepath; 
    return View(); 
} 
+0

我試過evrything你建議 – user1274646

+0

糟糕,那是因爲我忘了在我的例子中設置'ViewBag.path = filepath;'。我已更新。 –

+0

該功能正在調用,但文件未打開 – user1274646