1

我收到标题中所述的错误。

这是html代码

<!DOCTYPE HTML>
<html>
    <head>
        <title> PhoneGap </title>
        <script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>
        <script type="text/javascript" charset="utf-8" src="fileopener.js"></script>
    </head>
    <body>
         <h1>PDF Open Tester</h1>
         <a href="#" onclick="window.plugins.fileOpener.open("/sdcard/Course Content Files/1.pdf");">open</a>
    </body>
</html>

这是fileopener.js

function FileOpener() {
};

FileOpener.prototype.open = function(url) {
    cordova.exec(null, null, "FileOpener", "openFile", [url]);
};

if(!window.plugins) {
    window.plugins = {};
}
if (!window.plugins.fileOpener) {
    window.plugins.fileOpener = new FileOpener();
}

错误是什么?我的假设是错误不在cordova javascript文件中。

从评论编辑:

我也得到了进一步的错误

Uncaught TypeError: Cannot read property 'fileOpener' of undefined.
4

1 回答 1

4

应OP的要求移植评论以回答:

HTML 标记中的引用有问题。属性的onclick外引号是双引号,但双引号也被用于.open()方法调用内的字符串。将一个或另一个更改为单引号。由于您已经在 HTML 属性中使用双引号,因此最好在方法调用字符串中使用单引号。

<a href="#" onclick="window.plugins.fileOpener.open('/sdcard/Course Content Files/1.pdf');">open</a>

最好的策略是避免将onclick标记完全放在内部,而是使用适用于 PhoneGap 应用程序的任何方法将事件绑定到代码中。

于 2013-03-04T16:21:43.987 回答