如何从另一个域访问 iframe 的元素
How to access the elements of an iframe from another domain?
>编辑:我使用 getFrame 获取 iframe 的 src,然后尝试在另一个名为 getSrc 的函数中获取视频的 src。出于某种原因,我仍然得到未定义的回报。以下是由于 getSrc 中的日志而导致的控制台图片:https://i.stack.imgur.com/h1bNy.png
getFrame = function(links) {
return $q.all(links.map(function(link){
return $http.get(link.Address);
})).then(function(results){
var src = results.map(function(result){
var tmp = document.implementation.createHTMLDocument();
tmp.body.innerHTML = result.data;
var video = $(tmp.body.children).find('#definitionblock iframe');
var video_src = $(video[0]).attr("src");
return "http://bslsignbank.ucl.ac.uk" + video_src;
});
return src;
})
}
getSrc = function(links) {
return $q.all(links.map(function(link){
return $http.get(link);
})).then(function(results){
var src = results.map(function(result){
var tmp = document.implementation.createHTMLDocument();
tmp.body.innerHTML = result.data;
//console.log(tmp);
var video = $(tmp.body.children).find('#sign');
console.log(video[0]);
var video_src = $(video[0]).attr("poster");
//console.log(video_src);
return video_src;
});
return src;
})
}
这是调用函数的地方:
bslLogin.getFrame($scope.links).then(function(response) {
$scope.videos = response;
bslLogin.getSrc($scope.videos).then(function(response) {
$scope.srcs = response;
});
});
如果我在录制视频[0]时没有指定视频索引,我会得到这个结果:https://i.stack.imgur.com/utXnj.png
发现了一些东西,但我不知道如何以正确的形式获得视频 src。
可能性很少:
-
如果可以控制服务器端,则需要在服务器上启用 CORS
-
如果您可以控制 iframe 内容页面,您可以使用 postMessage
参考:Access_control_CORS,发布消息
相关文章:
- 单击更改iframe元素的类
- 通过jquery/javascript访问iframe元素
- 将自定义javascript函数应用于iframe元素
- Chrome扩展-访问iframe元素
- AngularJS - 如何在 iframe 元素更改时读取 SRC 属性
- iframe 中的页面是否可以跨域“看到”,如果 iframe 元素本身可见或不可见
- iframe 元素不会自动删除内容
- 检测 iframe 元素的点击
- 通过 Id 访问 Iframe 元素,给出 null
- 如何从 iframe 元素更改元素属性
- 从动态生成的iframe元素中获取图像url
- 可以't获取从指令传递给Angular控制器的iframe元素
- 限制HTML文档或iframe元素中允许的资源
- 访问在chrome中不起作用的iframe元素
- 将iframe元素扫入屏幕
- 访问iframe元素跨域(但JS文件是相同的域)
- 通过名称获取IFRAME元素不再工作
- 在HTA中获取IFrame元素时出错
- 获取angular的onload事件.iframe元素
- 如何获得iframe元素的实际代码(而不是内部内容)