得到错误 - >意外的标记 }

时间:2013-03-04 15:54:11

标签: javascript android html cordova syntax

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

这是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.

1 个答案:

答案 0 :(得分:4)

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

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

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

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