javascript - 如何将外部 HTML 文件加载到 Javascript 文档对象中

标签 javascript dom

我正在寻找类似于 PHP 的 DOMDocument->loadHTMLFILE() 的 javascript 方法,以便我可以解析外部 html 文件的内容并提取图像。现在我正在通过 ajax 来做,这太慢了。

这是我用来抓取图像的 PHP,它可以工作。我只是想在浏览器端做同样的事情,这样速度更快。

if(isset($_POST['link']) && $_POST['link'] !== ""){
    //extract relevant article info from link
    $sourceArray = array();
    $sizeArray = array();
    $link = $_POST['link'];
    //generate new DOMdoc
    $article = new DOMDocument;
    $article ->loadHTMLFile($link);
    //get the largest image
    $images = $article->getElementsByTagName("img");
    foreach($images as $image){
        $source = $image->getAttribute("src");
        if(strpos($source, "http://") !== false){
            $sizeProfile = getimagesize($source);
            $imgArea = $sizeProfile[0] * $sizeProfile[1];
            if($imgArea > 100){
                array_push($sizeArray, $imgArea);
                array_push($sourceArray, $source);
            }
        }
    }
    array_multisort($sizeArray, SORT_DESC, $sourceArray);
    $sourceHTML = "";
    $i = 0;
    foreach($sourceArray as $source){
        $id = 'image'.$i;
        $sourceHTML .= '<img id="'.$id.'" class="notSelectedPicture" src="'.$source.'" onclick="toggleSelectedPicture(\''.$id.'\');" alt="alt">';
        $i++;
    }
    echo $sourceHTML;
    exit();
}

最佳答案

ajax 解决方案适用于此目的。作为客户端语言,JS 似乎不能像 PHP 那样获取和解析外部 html 文件。为了减少加载时间,应该关注 ajax 发布到的 dom 解析代码的效率。

关于javascript - 如何将外部 HTML 文件加载到 Javascript 文档对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19801227/

相关文章:

javascript - 如何在谷歌表格脚本中更快地突出显示重复项?

javascript - Contenteditable div 选择标题标签中的文本

javascript - Dojo 按 ID 查询默认为 getElementById

javascript - 无法让 .each() 在 JQuery 中工作

javascript - 从谷歌图表更改 Angular 索引标签

javascript - JQuery 操作 Div 集的子级

javascript - 使用wrapAsync 将 Twilio Node 客户端包装在 Meteor 应用程序中失败

php - 使用 SimpleHTMLDOM 在 PHP 中解析 HTML iFrame SRC

JavaScript 水平旋转器

javascript - 使用 JavaScript 动态插入 DIV 的成本有多高?