我需要直接从我的页面执行小书签的操作。
我需要在给定该 url 的情况下提取网页的 document.title 属性。
因此,假设用户输入 www.google.com,我希望能够以某种方式在 iframe 中提取 google.com,而不是访问 document.title 属性。
我知道书签(从书签栏运行的 javacript)可以访问用户所在的任何站点的 document.title 属性,然后将该信息 ajax 到服务器。
这基本上是我想要做的,但直接从我的网页而不使用书签。
我需要直接从我的页面执行小书签的操作。
我需要在给定该 url 的情况下提取网页的 document.title 属性。
因此,假设用户输入 www.google.com,我希望能够以某种方式在 iframe 中提取 google.com,而不是访问 document.title 属性。
我知道书签(从书签栏运行的 javacript)可以访问用户所在的任何站点的 document.title 属性,然后将该信息 ajax 到服务器。
这基本上是我想要做的,但直接从我的网页而不使用书签。
根据这个问题 你可以使用 PHP 来实现这个,试试这个代码:
<?php
function getTitle($Url){
$str = file_get_contents($Url);
if(strlen($str)>0){
preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
return $title[1];
}
}
//Example:
echo getTitle("http://www.washingtontimes.com/");
?>
但是,我认为可以使用 JS 读取文件内容并执行相同的搜索标签逻辑。
尝试在这里搜索
不幸的是,这并不容易。出于安全原因,不允许 JavaScript 访问不在同一域中的框架或窗口的文档对象。这类事情必须通过对后端 PHP 脚本的请求来完成,该脚本可以获取请求的页面、通过 DOM 并检索<title>标签中的文本。如果您没有这种能力,那么您所要求的将更加困难。
这是基本的 PHP 脚本,它将获取页面并使用 PHP 的 DOM 扩展来解析页面的标题:
<?php
$html = file_get_contents($_GET["url"]);
$dom = new DOMDocument;
$dom->loadXML($html);
$titles = $dom->getElementsByTagName('title');
foreach ($titles as $title) {
echo $title->nodeValue;
}
?>
您可以编写一个服务器端脚本,为您检索页面(即使用 curl)并解析 dom 并将所需的属性作为 json 返回。然后用ajax调用它。