概念:书签用于创建标题表单并在提交后再次删除它

时间:2009-08-16 12:03:19

标签: javascript jquery html iframe bookmarklet

所以我一直在思考这个并尝试各种策略。基本上我正在尝试创建一个bookmarklet,当单击时,会在您碰巧遇到的任何页面上弹出一个标题。在此标题中,有一个小表单,其内容将提交给服务器。提交后,标题应该消失。在所有情况下,我都用一个简单的加载器书签加载我的JS:

javascript:(function(){document.body.appendChild(document.createElement('script')).src='http://localhost/bklts/script.js';})();

这个问题比听起来更加棘手 - 在某些情况下,我提出的每个想法都失败了 - 现在让我们忘记IE的兼容性,我稍后会处理它。

创意1是将浏览器重定向到我服务器上的页面,其中的表单位于顶部,而原始页面位于iframe下方。这非常有效,但速度非常慢:3页加载以查看表单和原始页面,然后在提交表单后返回另一个页面加载以返回到原始页面。此外,它打破了框架的网站。

创意2是在原始页面的顶部插入一个iframe,iframe src'在我的服务器上的表单文档。这非常有效,只需要1个页面加载(iframe内容)。但是,原始页面上绝对放置的元素保留在其绝对位置,覆盖我的标题,而其他所有元素都向下移动。此外,我发现在提交表单之后删除这个标题是不可能的,也就是在iframe下面创建一个链接,它会隐藏iframe和它自己,在提交表单后会点击它。长话短说,不是真正的生产质量。

创意3根本不是使用框架。在页面顶部插入一个div,其中包含我的表单,此表单将提交给我的服务器。当然这个问题是原始页面的样式表会影响我的新div,我不能为我的生活弄清楚如何告诉页面而不是来设置header-div的样式(或者只用我的规则来设计它。我被告知这在jQuery中是微不足道的,虽然我已经开始学习/使用它,但我还没有找到办法做到这一点。还有一个位置:概念2中描述的绝对问题,但我认为这是次要的。

我对这个问题感到愚蠢吗?我是否应该放弃制作标题的所有希望而只是弹出一个新窗口?我真的希望它是一个标题,但是如果标题是不可能的话,窗口就足够了(这是2009年 - 几乎没有没有这些天不可能在线...)

无论如何,任何帮助修复上述想法或一个全新的想法都是非常受欢迎的。

非常感谢你的时间,

马拉

1 个答案:

答案 0 :(得分:1)

如何将<iframe>插入页面?

这应该很简单,不会继承原始页面的CSS。 您可以在查询字符串中传递iframe所需的任何内容。

我认为让它自毁可能会很棘手......也许你可以将它重定向到原始域名中的页面,并对其进行轮询。