繁体   English   中英

通过出现错误的Ajax-Request打印HTML会阻止进一步的JS工作

[英]Printing out HTML via an Ajax-Request that is having errors stops further JS from working

我对自己的网站做了一些实验。 我有一个网站,那是空的。 然后,它向收集随机网站的php文件发出AJAX请求。 通过使用多个随机词收集网站,并用它们向Google进行搜索请求并选择随机结果。 然后,使用curl,我将遵循该结果并打印出内容,并将我的ajax请求中的设置为我的html。 然后,通常应收集下一页。

但是,问题在于,网站加载后,网站本身存在JavaScript错误(可能是由于路径或其他原因?)

我该如何解决? 这是我的代码。 正如我说的,这只是一个实验,所以我没有使用原型,类,测试,注释或其他任何东西,只是愚蠢地写下了代码

<section id="content">
</section>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.0.min.js"></script>

<script type="text/javascript">
    $(document).ready(function(){
        newSite();

        function newSite()
        {
            $.ajax({
                url: 'sites.php',
                dataType: 'html'
            }).done(function(data) {
                $('#content').html(data);
                $('#content').scrollTop(300);

                newSite();
            });
        }
    });
</script>

这是我获取网站内容并在php文件中打印出来的地方(我在这里没有显示完整的代码,因为有些东西你不需要)

$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_URL, $final);

$content = curl_exec($ch);

echo $content;

$final是Google搜索结果的网址。 有任何想法吗?

如果要加载随机网站,则不能仅在自己的文档中插入第一页,该网站通常还会加载其他文件,并带有一些相对路径,这些相对路径在您的页面中不起作用(JS,图像,.. )。

您可以剥离JS内容,但是如果没有这些内容,某些站点就会崩溃,即使没有,您仍然可能会丢失某些部分。

除了发送内容外,您还可以从PHP代码发送URL,然后使用window.open显示目标网站(而window.close关闭上一个网站)。

例如:

var windowRef = window.open(url, name);

通常,该窗口在新选项卡中打开。 如果name不为空,则该窗口将重复使用以相同name打开的选项卡,而不是打开另一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM