我正在创建一个桌面应用程序,我可以使用AppJS过滤iframe中的某些特定div。我有一个问题,我无法隐藏一些div,有一个代码:
<!DOCTYPE html>
<html>
<style>
</style>
<head>
<link type="text/css" rel="stylesheet" href="style.css" />
<script>
function resizeIframe(newHeight)
{
document.getElementById('iframe1').style.height = parseInt(newHeight,10) + 10 + 'px';
}
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
</head>
<body onload='parent.resizeIframe(document.body.scrollHeight)'>
<h1>hello world</h1>
<iframe name='iframe1' id="iframe1" src="http://www.example.com" frameborder="0" border="0" cellspacing="0" style="border-style: none;width: 100%; height: 100%;"></iframe>
<script>
$(function(){
var f=$('#iframe1')
f.load(function(){
f.contents().find('div').hide();
})
})
</script>
</body>
</html>
我从控制台发现错误不安全的JavaScript尝试访问带有URL的框架
可以解决这个问题吗?
答案 0 :(得分:1)
由于Cross-Domain Policy,您无法直接执行此操作。
但是,您可以先使用自己的服务器(代理)中的php脚本获取目标网址的内容,然后在javascript / jquery中加载其内容。这只是一个小修复,并不适合您要加载的所有类型的页面。
例如:
<iframe src="path_to_my_server_php_script/iframe.php?url=http://example.com"></iframe>
iframe.php基本代码:{你也可以在这里设置标题或操作HTML代码}
<?php
$url = $_GET['url'];
$html = file_get_contents($url);
echo $html;
?>
答案 1 :(得分:1)
在创建窗口调用中添加一个选项以关闭安全性:
disableSecurity:真
有关示例,请参阅维基页面:https://github.com/appjs/appjs/wiki/app-object
此设置应关闭跨域策略。