在新标签

时间:2016-12-20 07:26:28

标签: javascript php json ajax

我正在尝试使用target="_blank"在新标签页中打开链接,因为某些原因它无效。

link.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script src="somejs.js"></script>

somejs.js

 function loadFunction() {
    $.getJSON("data.php", function (data) {
        info = data.info;
        console.log(info);
    });
 }
 loadFunction();

如您所见,somejs.js包含JSON脚本。 在新标签页中加载link.php页面时,控制台中不会显示JSON REQUEST。但是,如果我先刷新页面,那么REQUEST将显示在控制台中。当我尝试手动在新标签页中打开页面时,JSON REQUEST也可用。

怎么回事?

这是截图

直接链接或刷新

refresh

新标签

newtab

1 个答案:

答案 0 :(得分:2)

从评论来看,我认为术语存在混淆。当你提到你没有在控制台中看到请求时我相信你的意思是网络调试器。

控制台是不同的,这就是为什么其他用户要求你使用console.log(),如果你想在Javascript控制台上看到任何东西。

您遇到的是浏览器特有的内容。如果在加载页面之前打开了调试器/检查器,则“网络”选项卡应显示通过AJaX完成的任何请求。如果没有,则浏览器端的某些技术性无法显示,但调用已完成(因为您可以通过console.log()进行测试)。

  

当link.php的页面加载到新选项卡中时,JSON REQUEST不会   显示在控制台中。

     

我尝试时也可以使用JSON REQUEST   手动在新标签页中打开页面。

从这两条评论中我推断出唯一一种情况,当您在网络标签上看不到该呼叫时,您的网页A上的链接会在新标签页上打开link.php

如果是这种情况那么那是因为您正在查看的调试器属于页面A.然后打开一个新选项卡,该选项卡尚未打开调试器,并且从link.php完成的任何请求都没有在任何地方展示。

如果在打开自己的调试器面板的情况下刷新link.php,那么您确实看到了请求。如果您在已打开调试器的新选项卡中手动调用link.php,也是如此。