【问题标题】:Unobtrusive Javascript to insert element that contains a Rails RESTful URL?插入包含 Rails RESTful URL 的元素的不显眼的 Javascript?
【发布时间】:2009-03-11 19:43:37
【问题描述】:

我有一个带有单个渲染 iFrame 的简单页面。有一个名为“添加文件”的链接,我想悄悄地将一个事件附加到“添加文件”锚点,这样当点击它时,它会在现有的 iFrame 下方插入一个新的 iFrame,并增加 iFrame 的 ID。

iFrame 的一个例子是:

<iframe name="uploadForm1" id="uploadForm1" src="<%= upload_file_url %>" height="50" width="800" frameborder="0" scrolling="no"></iframe>

然后当点击“添加文件”按钮时,我会得到:

<iframe name="uploadForm1" id="uploadForm1" src="<%= upload_file_url %>" height="50" width="800" frameborder="0" scrolling="no"></iframe>
<iframe name="uploadForm2" id="uploadForm2" src="<%= upload_file_url %>" height="50" width="800" frameborder="0" scrolling="no"></iframe>

什么是最好的方法(jQuery 或 Prototype)来完成这个?

这似乎很琐碎,但是由于我需要渲染 upload_file_url 路由,我不太确定如何在不浪费大量时间的情况下处理它!

感谢任何帮助!

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby


    【解决方案1】:

    这应该为你做:

    var g_maxNum = 1; // The latest iframe number
    
    function copyIframe()
    {
        // Get the latest iframe
        var iframe = document.getElementById('uploadForm' + g_maxNum);
        g_maxNum++
    
        // Create a new iframe by cloning the existing one
        var newIframe = iframe.cloneNode(true);
        // Update the properties
        newIframe.name = 'uploadForm' + g_maxNum;
        newIframe.id = newIframe.name
    
        // Insert it after the last iframe
        iframe.parentNode.insertBefore(newIframe, iframe.nextSibling);
    }
    

    【讨论】:

    • 写得很漂亮,但是它卡在'iframe.parentNode'上,它返回null。立即进行故障排除。
    • 糟糕,我有一个额外的 .cloneNode 在那里(函数的第一行) - 已修复
    • 非常感谢。我有 Yahuda 的 jQuery 书,我真的需要深入研究它。我知道我以前见过克隆功能,但还没有接近那种心态;这是一个非常优雅的解决方案。谢谢!
    猜你喜欢
    • 2011-03-09
    • 2011-03-31
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2013-02-21
    相关资源
    最近更新 更多