0

这段代码:

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 文件。只是函数没有被调用

4

1 回答 1

0

您在相应的~/PDF/js捆绑包中有什么?您是否确保所有必要的脚本都包含在正确的顺序中?

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

另请查看该@Script.Render方法在生成的 HTML 页面中输出了什么。由于包没有缩小,也没有在调试模式下组合,您应该能够看到对<script>您需要的每个文件的引用。现在将这些引用与您通常在没有任何捆绑包甚至 ASP.NET MVC 的情况下使用的那些引用进行比较。它们有何不同?

此外,我注意到您在 Url.Content 助手中使用了一条非常奇怪的路径:~/pdf.js/api.js。你确定这行得通吗?

于 2013-01-02T18:19:51.703 回答