Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用iframe关闭Bookmarklet?_Javascript - Fatal编程技术网

Javascript 如何使用iframe关闭Bookmarklet?

Javascript 如何使用iframe关闭Bookmarklet?,javascript,Javascript,我已经为我的网站设计了bookmarklet。因此,bookmarklet是使用iframe创建的。Iframe和Iframe源在脚本中声明 我已经设置了关闭按钮,并且为我的源页面声明了回调函数,但是它不起作用 单击关闭按钮 显示以下错误 (DomeException:阻止原点为“”的帧访问跨原点帧。位于HTMLButtoneElement.onclick()) 书签: <a class="article-bookmark" href="javascript: (function(){

我已经为我的网站设计了bookmarklet。因此,bookmarklet是使用iframe创建的。Iframe和Iframe源在脚本中声明

我已经设置了关闭按钮,并且为我的源页面声明了回调函数,但是它不起作用

单击关闭按钮

显示以下错误

(DomeException:阻止原点为“”的帧访问跨原点帧。位于HTMLButtoneElement.onclick())

书签:

 <a class="article-bookmark" href="javascript: (function(){

        var iframeSrc = 'http://localhost:8050/researcher_20voice/iframe.html';
        var iframeStyle = 'position: fixed; z-index: 999999; width: 500px; height: 300px; left:300px; right: 0; top: 200px; border: none; overflow: hidden;                   background-color: black';
        var iframe = document.createElement('iframe');
        iframe.setAttribute('src', iframeSrc);
        iframe.setAttribute('id', 'kew-modal');
        iframe.setAttribute('style', iframeStyle);


        var body = document.getElementsByTagName('body')[0];
        body.appendChild(iframe);


    }).call(this);">Bookmarklet</a> 

我在创建书签时也遇到了这个问题,就像Pinterest的pinit一样

解决跨域问题的唯一方法是在iframe内的页面和GitHub上的父页面之间发布事件,如下示例所示:

我在另一个帖子上发布了一个答案:

在另一个线程上还发现了一个示例:


希望有帮助

如果内容来自同一来源,您可以-但您需要使用
document.getElementById('kew-modal')
而不是(“id”)-因为它可能不是来自同一来源,您将不被允许,我也使用了document.getElementById('kew-modal'),但它重复了相同的交叉组织错误。因此答案是否定的
 function closeIframe() {
         var iframe = document.getElementById('id');
         iframe.parentNode.removeChild(iframe);
    }