InAppBrowser在动态链接上的问题

时间:2014-04-04 13:30:24

标签: jquery cordova

我在我的phonegap构建应用的start.html中有这个代码。

document.addEventListener('deviceready', function() {
                                  try {


                                  function appBrowser(url) {

                                    var ref = window.open(url, '_blank', 'location=yes');
                                    ref.addEventListener('loadstart', function() { alert('start: ' + event.url); });
                                    ref.addEventListener('loadstop', function() { alert('stop: ' + event.url); });
                                    ref.addEventListener('exit', function() { alert(event.type); });

                                }


                                  } catch (e) {

                                    alert(e);

                                  }


                                  }, false);

如果我只是静态地将这个html放在下面,一切正常。

<a href="" onClick="javascript:appBrowse('http://www.link.se')">Link</a>

然后我尝试将链接动态添加到sama页面上的div(带有类链接),使用此命令从js / index.js调用。

$('.link').append("<a href='' onClick='appBrowser("+ encodeURI(link) + ")'>Test</a>");

链接被添加,但是当我点击链接时出现以下错误: 未捕获的SyntaxError:意外的标记:start.html:1

有什么想法吗?我正在使用jquery mobile作为我的前端。

2 个答案:

答案 0 :(得分:0)

为什么不按类别绑定这些特定链接上的点击事件而不是使用onclick?

$('body').on('click', '.appBrowser', function(e) {
    e.preventDefault();
    var url = $(this).attr('href');

    window.open(url, '_blank', 'location=yes');
});

使用inAppBrowser为类appBrowser提供将打开的链接,并使用inAppBrowser打开它们。

答案 1 :(得分:0)

像这样添加语法:

$('.link').append("<a href=\"\" onClick=\"appBrowser(encodeURI(link))\">Test<\/a>");