2013-01-02 22 views
0

此代碼:當我使用@ Scripts.Render時,JS函數從不會被觸發。正常呼叫工作正常

PDFJS.getDocument(parameters).then(
    function getDocumentCallback(pdfDocument) {   
    self.load(pdfDocument, scale); 
    self.loading = false; 
    } 

應該調用這個函數:

PDFJS.getDocument = function getDocument(source) { 
return alert('never gets here'); 
var workerInitializedPromise, workerReadyPromise, transport; 
if (typeof source === 'string') { 
    source = { url: source }; 
    return alert('string'); 
} else if (isArrayBuffer(source)) { 
    source = { data: source }; 
    return alert('data'); 
} else if (typeof source !== 'object') { 
    return alert('erro'); 
error('Invalid parameter in getDocument, need either Uint8Array, ' + 
     'string or a parameter object'); 
} 

if (!source.url && !source.data) { 
    error('Invalid parameter array, need either .data or .url'); 
    return alert('erro 2'); 
} 

// copy/use all keys as is except 'url' -- full path is required 
var params = {}; 
for (var key in source) {  
    if (key === 'url' && typeof window !== 'undefined') { 
    params[key] = combineUrl(window.location.href, source[key]); 
    continue; 
} 
params[key] = source[key]; 

} 
workerInitializedPromise = new PDFJS.Promise(); 
    workerReadyPromise = new PDFJS.Promise(); 
    transport = new WorkerTransport(workerInitializedPromise, workerReadyPromise); 
workerInitializedPromise.then(function transportInitialized() { 
    transport.fetchDocument(params); 
    }); 
    return workerReadyPromise; 
    }; 

雖然如果我使用

@Scripts.Render("~/PDF/js") 

調用腳本,而不是使用

<script type="text/javascript" src="Url.Content("~/pdf.js/api.js")"> </script> 

功能PDFJS.getDocument永遠不會被觸發。

我錯過沉思?

編輯:這兩種情況下的js文件加載。只是功能不叫

回答

0

你有什麼在相應的~/PDF/js捆綁?你確定所有必要的腳本是否包含在正確的順序中?

bundles.Add(
    new ScriptBundle("~/PDF/js").Include("~/pdf/api.js") 
); 

而且看看在生成HTML頁面什麼是@Script.Render方法輸出。由於bundle未縮小,也未在調試模式下組合,所以應該能夠看到您需要的每個文件的<script>引用。現在將這些引用與那些沒有任何包或甚至ASP.NET MVC的情況下通常使用的引用進行比較。他們有什麼不同?

另外我注意到你在Url.Content助手中使用了一條相當奇怪的路徑:~/pdf.js/api.js。你確定這有效嗎?