繁体   English   中英

如何将iFrame结果更改为JavaScript警报框?

[英]How to change iFrame results to JavaScript alert box?

我有权访问运行脚本以清除用户状态的url。 我想生成一个可以在网页上运行的脚本,以实现此目的。

以下脚本可以工作,但是在Firefox中,人们每次访问页面时都必须禁用混合内容,这很烦人:

 <SCRIPT LANGUAGE="JavaScript">
function go(loc,loc2){
    document.getElementById('userstate').src = loc +
    document.getElementById('username').value +  loc2;
}
</script>

<form onSubmit="go('http://mysiteurlomitted.com/userstate/?userId=','&app=cc'); return false;"/>
Username: <input type="text" id="username">
<input type="submit" value="Clear User State">
</form> 

<iframe id="userstate" src="about:blank" width="470" height="30" frameborder="1" scrolling="no"></iframe>

结果URL生成一个简单的文本字符串,并且结果页面上没有HTML,因此我认为将URL读取为文件并将结果加载到警报框中应该非常容易。 这样可以避免使用iframe方法,并摆脱混合内容的情况。 它无需任何更改即可运行。 但是我不知道如何使它工作。 我觉得FileReader()应该是一个很好的方法,但是URL有参数...因此读者不知道它是什么文件类型。 它只是失败。 必须有一种更简单的方法来执行此操作。

这种事情您不需要任何JavaScript。 只需将名称属性添加到用户名输入中,该值将在查询字符串中传递为“&username = Name”。 所以:

<form action="/userstate?app=cc">
    Username: <input type="text" id="username" name="username" />
    <input type="submit" value="Clear User State" />
</form>

这样会将表单提交到“ http://samedomain.wut/userstate?app = cc&username = ”,该表单将在服务器端的常规发布数据源中可用。

还有其他更好的方法,但是我不知道您的设置。 您应该研究cookie /会话的服务器端管理; 用户无需输入任何内容即可登录。

编辑:

如果要将其用作管理工具,则可以做两件事:使用ajax(Jquery的XMLHttpRequest或$ .ajax),或使端点重定向回(或提供)表单。 您可以将表单提交到其自己的url,并在服务器端脚本处理过程中处理数据,然后再次输出表单的html。 对于实际应用而言,这不是一个很好的模式,但是在这种情况下应该可以使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM