在Javascript中创建新窗口时,为什么不能从JSON文件加载图像

时间:2018-11-24 03:48:10

标签: javascript

我正在用JS编写程序,该程序从电影API接收一些信息(标题,描述,海报图像等),并显示最新电影发行列表。

在此列表中,我想打开一个新窗口,当用户单击海报图像时,该窗口显示特定电影的信息。

我已经想出了如何打开一个新窗口并显示想要的大多数数据,但是我无法显示海报。

for (var i = 0; i < moviesObject.results.length; i++) {
    var li = document.createElement('li');
    var moviePoster = document.createElement('img');
    var divOverview = document.createElement('div');
    var divReleaseDate = document.createElement('div');

    moviePoster.setAttribute('src', 'https://image.tmdb.org/t/p/w370_and_h556_bestv2' + moviesObject.results[i].poster_path);
    li.innerHTML = '<strong>Title: </strong>' + moviesObject.results[i].title;
    divOverview.innerHTML = '<strong>Overview: </strong>' + moviesObject.results[i].overview;
    divReleaseDate.innerHTML = '<strong>Release Date: </strong>' + moviesObject.results[i].release_date + '<br><br>';
    moviesList.appendChild(li);
    moviesList.appendChild(moviePoster);
    moviesList.appendChild(divOverview);
    moviesList.appendChild(divReleaseDate);

    moviePoster.addEventListener("click", function () {
        var newWindow = window.open();
        newWindow.document.open();
        newWindow.document.write(li.innerHTML+ "<br>");
--->    newWindow.document.write(); <-- here is where I have to display the poster
        newWindow.document.write(divOverview.innerHTML+ "<br>");
        newWindow.document.write(divReleaseDate.innerHTML+ "<br>");
        newWindow.document.close();
    });
}

1 个答案:

答案 0 :(得分:2)

它是因为moviePoster没有innerHTML将其设置为outerHTML

newWindow.document.write(moviePoster.outerHTML+ "<br>");