如何在每个循环中的onclick中使用window.open

问题描述 投票:0回答:2

我想在PhoneGap应用程序中显示页面内容。这很好用:

<a href="#" onclick="window.open('https://www.google.com', '_self ', 'location=yes');">google.com</a>

当我点击链接谷歌被加载到应用程序内。

我正在使用WordPress Rest API退休帖子数据。为此,我使用这个:

getPosts: function() {

        var rootURL = 'https://example.com/wp-json/wp/v2/posts/';

        $.ajax({
            type: 'GET',
            url: rootURL,
            dataType: 'json',
            success: function(data){

                $.each(data, function(index, value) {
                    console.log(value.featured_image);
                  $('ul.homepost-list').append('<li class="homepost-list__item">' +
                    '<a href="'+value.link+'">'+
                    '<img width="100" height="75" src="'+value.fimg_url+'" alt="'+value.title.rendered+'"/>'+
                    '<h3>'+value.title.rendered+'</h3>' +
                    '<p>'+value.excerpt.rendered+'</p>'+
                    '</a>'+
                    '</li>');
                    ;
                });
            },
            error: function(error){
                console.log(error);
            }

        });

    }

但是当它点击它在浏览器中打开的帖子时。要在app中打开它我必须使用这样的onclick函数:<a href="#" onclick="window.open('https://www.google.com', '_self ', 'location=yes');">google.com</a>

所以我改变了这样:

getPosts: function() {

        var rootURL = 'https://example.com/wp-json/wp/v2/posts/';

        $.ajax({
            type: 'GET',
            url: rootURL,
            dataType: 'json',
            success: function(data){

                $.each(data, function(index, value) {
                    console.log(value.featured_image);
                  $('ul.homepost-list').append('<li class="homepost-list__item">' +
                    '<a href="#" onclick="'+window.open(''+value.link+'', '_self ', 'location=yes')+'">'+
                    '<img width="100" height="75" src="'+value.fimg_url+'" alt="'+value.title.rendered+'"/>'+
                    '<h3>'+value.title.rendered+'</h3>' +
                    '<p>'+value.excerpt.rendered+'</p>'+
                    '</a>'+
                    '</li>');
                    ;
                });
            },
            error: function(error){
                console.log(error);
            }

        });

    }

但现在锚点onclick值为NULL onclik null

我想这是因为这行有一个语法错误qazxsw poi

我如何更改此语法行以使其工作?这只是一个简单的语法错误我知道,但我无法弄明白。

javascript json wordpress each window.open
2个回答
0
投票

您需要处理如何添加字符串和变量以及单引号和双引号。请看这里的小提琴google.com

https://jsfiddle.net/designtocode/u3o57jr2/3/

需要是:

onclick="'+window.open(''+value.link+'', '_self ', 'location=yes')+'">'+

这意味着onclick="window.open(\''+value.link+'\', \'_self \', \'location=yes\')"> onclick需要作为字符串传递,window.open需要变量。由于我们使用单引号来转义javascript代码,因此我们需要在单引号之前添加value.link,如果您需要它作为字符串。

我希望这有意义,并将在未来帮助你。


0
投票

你需要逃避单引号

\
© www.soinside.com 2019 - 2024. All rights reserved.