【问题标题】:HTML/JS explanatory dialog for linked-to page链接到页面的 HTML/JS 解释性对话框
【发布时间】:2017-07-20 15:26:44
【问题描述】:

我的页面上有一个链接,单击该链接会打开一个新选项卡,其中包含另一个页面(不受我控制)。由于我将我的用户重定向到此页面,我现在想向他们解释他们应该在此页面上做什么(“现在请按此页面上的绿色按钮。”)。我想打开一个带有解释的对话框。我可以忍受用户必须在遵循建议之前关闭此对话框。

我尝试在链接中使用onclick="alert('<msg>');"。但是这个 first 创建了对话框,并且只有当用户关闭对话框时,链接才会被关注。用户体验被打乱了。我可以给出一条消息,例如“您现在将打开一个新窗口;对此请执行以下操作……”,但我更愿意在新页面上显示对话框。

我尝试使用onclick="setTimeout(function() { alert('<msg>'); }, 3);"(如in this answer 所述)。这实际上在新选项卡中打开了新页面,但是当对话框异步出现时,它会切换回原来的页面。这再次破坏了用户体验;我当然希望对话框出现在新页面上。

有什么方法可以实现我的目标吗?我想打开新页面,让它可见,保持可见,然后在新页面可见时向用户显示说明。有什么方法可以实现吗?

【问题讨论】:

    标签: javascript html hyperlink onclick dialog


    【解决方案1】:

    除了能够重定向之外,您无法控制其他页面,但对于许多人来说这是一个安全问题,可能不是一个好的解决方案。

    您唯一可以更改的是您网站上的内容,因此无法在其他网页上显示对话框,除非该页面可以接受查询字符串并将其显示为警报(极不可能)。

    如果其他网站允许,您将需要使用现有方法之一,或在 i-frame 中打开其他网站。这意味着您仍然在您的网页上,并且可以完全控制发生的事情。 例如:

    • 点击链接
    • 在后台打开 iframe
    • 显示带有说明的模态
    • 用户关闭模式并按照 iframe 中的说明进行操作

    【讨论】:

    • 这就是我所担心的。让我们看看是否会出现其他答案。
    【解决方案2】:

    您可以创建自己的页面(将用作代理),它可以请求其他页面。响应应该是您页面的结构。这是第一步。

    第二步修复img、iframe、script、link和a使用的相对位置使用完整路径,这样页面就不会断了。

    第三步,编写你的 JS 库并将其添加到页面的头部。该库将执行消息传递。

    第四步是在新标签页中打开新页面,您可以在其中控制正在发生的事情。

    【讨论】:

    • 哇。对于我的用例来说,这听起来有点太多了。我永远无法说服任何人需要 that ;-)
    • @Alfe 我能理解你,但这是我知道的唯一解决方案。我在我的项目中多次应用了这一点。
    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 2014-10-21
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 2020-05-31
    相关资源
    最近更新 更多