防止 javascript 在 HREF 中运行
我对以下 HTML 遇到问题:
<a href="javascript:document.formName.submit();" target="iframe">
其中 formName 是 iframe 内表单的名称。我希望浏览器导航到 iframe 中的页面“javascript:...”,以便它在 iframe 中的当前页面上执行 javascript。我的问题是浏览器将尝试执行该函数并使用返回的结果作为 url。当然,当前页面没有要提交的表单,所以我只是得到一个错误。
I have a problem with the following HTML:
<a href="javascript:document.formName.submit();" target="iframe">
Where formName is the name of a form inside the iframe. I would like the browser to navigate to the page "javascript:..." in the iframe, so it executes the javascript on the current page in the iframe. My problem is that the browser will attempt to execute the function and use the returned result as the url. Of course there is no form to submit on the current page, so I just get an error.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
跨域 iframe 不是飞行区域,您将无法对不同域上的框架内部的 DOM 执行任何操作。即使用户单击框架内的提交按钮,您的页面也无法从框架中获取新的 url。
Cross domain iframes are no fly zones, you won't be able to do anything with or to the DOM inside of a frame on a different domain. Even if the user clicked the submit button inside the frame, your page would not be able to get the new url back out of the frame.
在这种情况下,您可以通过进入 iframe 内部来完成此操作:(
这可能不是完全正确的咒语)。一般来说,您应该使用超链接的 onclick 处理程序来执行此操作,该处理程序调用 iframe 文档定义的函数。
编辑:没有办法使这项工作跨域。这违反了浏览器的安全策略。
In this case, you can do it by reaching inside the iframe:
(that may not be exactly the right incantation). In general, you should do this with an onclick handler for the hyperlink, that invokes a function defined by the iframe's document.
EDIT: There is NO WAY to make this work cross-domain. It's a violation of the browser's security policies.