如何访问用户所选网址的 DOM
How to access the DOM of a user selected web address
>我需要做书签做的事情,但直接从我的页面。
我需要在给定该网址的情况下拉取网页的 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;
}
?>
演示:http://www.dstrout.net/pub/title.htm
您可以编写一个服务器端脚本,该脚本将为您检索页面(即使用 curl(并解析 dom 并以 json 形式返回所需的属性。 然后用 ajax 调用它。
相关文章:
- Javascript没有't更新DOM,直到用户交互
- 创建一个HTML文件,该文件使用DOM在用户每次单击按钮时交换两段内容
- 从 DOM 中删除/删除 Javascript 用户定义的数组
- 在页面显示给用户之前拦截并修改DOM
- Angular js 避免在用户无限滚动和删除 dom 元素时重复数据
- 输入字段对用户只读,但仍可通过 DOM 进行编辑
- 如何使用护照循环用户.js并将用户列表打印到 DOM 上
- 如何访问用户所选网址的 DOM
- 使用 angularJS 加载 100 个用户的数据以及 DOM 修改
- 使用用户输入值从 DOM 中删除几个元素
- 使用用户脚本记录网页动态创建的 DOM 元素
- 通过用户类型识别节点的Javascript DOM
- 将可能不安全的用户输入从隐藏的输入字段转移到DOM
- 检查DOM元素是否可以使用纯JS进行编辑(允许用户输入)
- 浏览器滚动事件是否可能由DOM操作(而不是用户操作或显式调用)触发?.ScrollTop美元)
- 我可以在用户单击链接后操作DOM吗?
- 改变DOM——如何编写一个单元测试来检查脚本是否对页面上的元素进行任何用户可见的更改
- 在JQuery中,我如何获得offset().在用户通过单击从DOM中删除元素后,在元素的顶部放置
- dom事件-如果文本不在表单中,是否可以使用JavaScript检索用户突出显示的文本
- 正在检测用户对DOM的篡改