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

时间:2014-03-19 17:09:41

标签: javascript html alert filereader

我可以访问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有参数...所以读者不知道它是什么文件类型。它只是失败了。必须有一种更简单的方法来做到这一点。

1 个答案:

答案 0 :(得分:0)

你不应该为这种事情使用任何javascript。只需在用户名输入中添加一个name属性,该值就会在查询字符串中传递为&#34;&amp; username = Name&#34;。这样:

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

这会将表单提交给&#34; http://samedomain.wut/userstate?app=cc&username=&#34;,这将在通常的帖子数据源的服务器端提供。

还有其他更好的方法,但我不知道你的设置。您应该查看cookie / session的服务器端管理;除了最初登录之外,用户不必输入任何内容。

编辑:

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