我刚刚发现,如果新的URL是跨域的,在IE浏览器中window.opener打开的窗口中不可用window.open.如何检测IE中的窗口开启工具
如果窗口在我的域中启动,离开它,然后返回到我的域,则会发生这种情况.我试图在弹出窗口中进行社交注册(facebook,google等).完成后应该关闭新窗口并重定向开启器.
我知道Soundcloud正在关闭它,但我不知道如何.我看到URL从他们改为Facebook,然后关闭.
从第三方重定向回我的网站后,我运行:
var data = {
type : 'complete',
destination : '<?= $destination; ?>'
};
if ( window.opener ) {
window.opener.postMessage( JSON.stringify( data ), '*' );
window.close();
}
else {
alert( "Unable to find window" );
}
Run Code Online (Sandbox Code Playgroud)
它在IE中提醒,即使窗口最初是我的域,然后重定向到FB,然后重定向回到我.我想可能因为我打开我的网站并立即从PHP重定向可能是一个问题.然而,即使我打开我的网站,window.location.href = 'facebookssite.com'它仍然在返回时抱怨.
注意
社交注册不适用于谷歌,FB等iframe.我相信他们出于安全原因不允许他们.
我有一个AngularJS单页面应用程序,它使用基于Django Rest Framework的Django后端API.API受到保护django-rest-framework-jwt.我想django-allauth在服务器端使用帐户管理和身份验证.
我只缺少流程中的一个单件:我的客户端的Oauth-Token如何被转换为JWT-token?基本上,我想按照http://blog.wizer.fr/2013/11/angularjs-facebook-with-a-django-rest-api/所述的方式进行操作python-social-auth.
所以我的问题是,如何从链接中实现ObtainAuthToken类django-allauth?
我们最近发现Chrome不再支持window.showModalDialog,这是有问题的,因为我们的企业应用程序使用此方法.
显然,有一个短期解决方法可以让你恢复showModalDialog,但它涉及修改注册表,这对我们普通用户来说太复杂(而且有风险).因此,我不是这种解决方法的忠实粉丝.
长期解决方案显然是删除对这个过时方法的所有调用,并用一个方便的jQuery插件替换它们(例如VistaPrint的Skinny Modal Dialog插件.顺便提一句其他建议也是如此).
我们使用模态对话框的典型场景是在执行无法撤消的操作之前询问用户是/否确认,要求用户在继续操作之前同意条款和条件等.通常情况下onclick事件为"是"或模态对话框中的"确定"按钮如下所示:
window.returnValue = true;
window.close();
Run Code Online (Sandbox Code Playgroud)
同样,"取消"或"否"按钮如下所示:
window.returnValue = false;
window.close();
Run Code Online (Sandbox Code Playgroud)
我们可以从对话框中返回一个值的事实非常方便,因为它允许"父"窗口被通知用户是否单击了"确定"或"取消"按钮,如下所示:
var options = "center:1;status:1;menubar:0;toolbar:0;dialogWidth:875px;dialogHeight:650px";
var termsOfServiceAccepted = window.showModalDialog(myUrl, null, options);
if (termsOfServiceAccepted) {
... proceed ...
}
Run Code Online (Sandbox Code Playgroud)
我要提到的关于showModalDialog的最后一件事是,即使对话框中显示的文档来自不同的域,它也能很好地工作.让我们的javascript从http://the-client.com运行是很常见的,但"服务条款"网页来自http://the-enterprise-vendor.com
我需要一个临时解决方案,我可以在我们处理长期解决方案时尽快部署.这是我的标准:
这是我到目前为止所拥有的:
1)在我的JavaScript中添加以下方法:
function OpenDialog(url, width, height, callback)
{
var win = window.open(url, "MyDialog", width, height, "menubar=0,toolbar=0");
var timer = setInterval(function ()
{
if (win.closed)
{
clearInterval(timer);
var returnValue = win.returnValue;
callback(returnValue);
}
}, 500);
}
Run Code Online (Sandbox Code Playgroud)
正如您在此方法中所看到的,我尝试通过隐藏菜单和工具栏使弹出窗口看起来尽可能类似于对话框,我每隔500毫秒设置一次时间来检查窗口是否已被用户关闭如果是这样,请获取'returnValue'并调用回调.
2)用以下内容替换对showModalDialog的所有调用: …
我有一个单页的javascript应用程序,我想知道我是否可以在Instagram上验证用户而无需刷新页面.我想尝试使用javascript执行类似于Facebook连接的操作,其中在弹出窗口中打开Facebook对话框,然后调用回调脚本.
这就是我想它会做的......
在我开始编码之前,我想我先问这里,如果这样做/不适用,或者其他建议,任何人都有任何想法!也许这已经存在,我错过了一些东西?
提前致谢 :-)
嗨我有一个父窗口,让saz M,点击M中的按钮,打开一个弹出窗口.如果在弹出窗口中选择了某个选项并单击了确定按钮,则弹出窗口应该关闭,并且在主窗口中应显示一条消息.这可以通过JavaScript吗?
我创建了一个框架集,其中一个框架使用window.open打开一个弹出窗口.在那个打开的窗口中,我有一个表单来收集用户的输入.输入我试图返回到父母但未能做到.任何帮助.我尝试使用window.opener使用此解决方案:弹出窗口在关闭时将数据返回到父级 但未能将getChoice()结果返回到父页面.
框架:
<form>
<button type="button" id="opener" onClick="lapOptionWindow('form.html','', '400','200');">Opinion </button>
</form>
Run Code Online (Sandbox Code Playgroud)
框架js:
function lapOptionWindow(url, title, w, h) {
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
return window.open(url, title,'toolbar=no,location=no,directories=no, status=no, menubar=no, scrollbars=no,resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
}
Run Code Online (Sandbox Code Playgroud)
form.html(窗口打开):
<div id="lightbox">
<strong>Chinese/Portuguese: Chinese<input type="radio" name="chorpor" value="" id="choice1"> Portuguese<input type="radio" name="chororpor" value="" id="choice2"></strong>
</br><button type="button" id="food" onclick="getChoice()">Submit</button>
</div>
Run Code Online (Sandbox Code Playgroud)
form.js:
function getChoice() {
var choice = "";
var choice1 = document.getElementById("choice1 ");
choice = choice1.checked == true ? "Chinese" : "Portuguese"; …Run Code Online (Sandbox Code Playgroud) javascript ×5
html ×2
cookies ×1
cross-domain ×1
django ×1
html5 ×1
instagram ×1
jquery ×1
jwt ×1
oauth-2.0 ×1