如何改变iFrame结果JavaScript警告框

How to change iFrame results to JavaScript alert box?

本文关键字:结果 JavaScript 警告 iFrame 何改变 改变      更新时间:2023-09-26

我可以访问一个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来做这种事情。只需向用户名输入添加一个name属性,该值就会以"&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=",这将在服务器端通常的post数据源中可用。

还有其他更好的方法,但是我不知道你的设置。您应该研究cookie/会话的服务器端管理;除了初始登录,用户不需要输入任何东西。

编辑:

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