javascript-无法访问iframe中的跨域父元素
以下是对我的que的描述: 我已将bookmarklet功能添加到我的站点。为此,我在我的网站上提供了一个名为“我的书签”的链接。。所以,我会将该链接拖到书签,它将被添加到书签中。所以,从现在开始,当我访问其他网站时,说“yahoo.com”。。我喜欢该网站的任何内容,所以我可以选择该内容并点击书签中的“我的书签”,它将打开我网站的一个页面,作为“yahoo.com”的子元素 为此,我添加了以下javascript代码。其中ifrme src是我的站点的urljavascript-无法访问iframe中的跨域父元素,javascript,iframe,element,parent,Javascript,Iframe,Element,Parent,以下是对我的que的描述: 我已将bookmarklet功能添加到我的站点。为此,我在我的网站上提供了一个名为“我的书签”的链接。。所以,我会将该链接拖到书签,它将被添加到书签中。所以,从现在开始,当我访问其他网站时,说“yahoo.com”。。我喜欢该网站的任何内容,所以我可以选择该内容并点击书签中的“我的书签”,它将打开我网站的一个页面,作为“yahoo.com”的子元素 为此,我添加了以下javascript代码。其中ifrme src是我的站点的url var div = docume
var div = document.createElement("div");
div.id = "instacalc_bookmarklet";
var str = "";
str += "<table id='instacalc_bookmarklet_table' valign='top' width='570' cellspacing='0' cellpadding='0'><tr><td width ='850' height='880'>";
str += "<iframe frameborder='2' scrolling='yes' name='instacalc_bookmarklet_iframe' id='instacalc_bookmarklet_iframe' src='" + iframe_url + "' width='850px' height='875px' style='textalign:right; backgroundColor: white;'></iframe>";
str += "</td><td id='closetd' onClick='toggleItem(\"instacalc_bookmarklet\");' style='background: #FFDDDD;' title='click to close window' valign='top' align='center' width='20px'>";
str += "<a href='javascript:void(0);' style='width:100%; text-align: middle; color: #FF0000; font-family: Arial;'>x</a>";
str += "</td></tr></table>";
div.innerHTML = str;
div.onkeypress = keyPressHandler;
document.body.insertBefore(div, document.body.firstChild);
var div=document.createElement(“div”);
div.id=“instacalc\u bookmarklet”;
var str=“”;
str+=”;
str+=”;
str+=”;
str+=”;
str+=”;
div.innerHTML=str;
div.onkeypress=keyPressHandler;
document.body.insertBefore(div,document.body.firstChild);
你可以在这里标记,我已经添加了一个表标签,里面有两个td。。一个td用于在iframe中显示我的页面,另一个td用于“关闭”按钮。。这将关闭从“yahoo.com”打开的窗口
现在,我的问题是。。我的网站上有“关闭”按钮。。只要一点。。。我想关上窗户。。(与上面javascript中的“close”按钮所做的动作相同..调用“toggleItem”函数)
但我的问题是。。在iframe中,我无法访问div元素
我写得很好
<a href="#bookmarklet" onclick="closethis();">Close</a>
<script>
function closethis()
{
id='instacalc_bookmarklet';
var item = parent.document.getElementById(id);
if(item){
if ( item.style.display == "none"){
item.style.display = "";
}
else{
item.style.display = "none";
}
}
}
</script>
函数closethis()
{
id='instacalc_bookmarklet';
var item=parent.document.getElementById(id);
如果(项目){
如果(item.style.display==“无”){
item.style.display=“”;
}
否则{
item.style.display=“无”;
}
}
}
但是只要点击这个紧密的链接。。我在var item=parent.document.getElementById(id)行上遇到javascript错误“获取属性window.document的权限被拒绝”
有什么想法吗
提前谢谢 出于安全原因,javascript禁止这样做,您不能更改它。以下是一些绕过限制的方法:
- 使用回调函数并将数据作为JSONP加载。这可能不适合你的情况
- 使用针对foreight域的操作在网页中创建表单,提交表单,获得响应,然后删除表单李>