.simulate(“点击”)无法在Google Chrome中使用Clearbox JS

时间:2011-08-23 09:47:41

标签: javascript google-chrome prototypejs

我正在尝试使用ClearBox JS打开叠加层,但我的解决方案似乎无法在Google Chrome中使用。

使用来自protolicious

的模拟
<body onload="clickNameChange();">

function clickNameChange() {
  $("name_change_button").simulate("click");
}

<a id="name_change_button" href="/name_change.htm" rel="clearbox[width=600,,height=400]">Opener()</a> 

我将当前窗口替换为链接中的内容,而不是像在FF和IE中那样用ClearBox叠加打开。

尝试了替代解决方案:

document.getElementById("name_change_button").onclick();

triggerEvent($("name_change_button"), "click");

function triggerEvent(element, eventName) {
  // safari, webkit, gecko
  if (document.createEvent)
  {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent(eventName, true, true);

    return element.dispatchEvent(evt);
  }

  // Internet Explorer
  if (element.fireEvent) {
    return element.fireEvent('on' + eventName);
  }
}

3 个答案:

答案 0 :(得分:0)

$("name_change_button")应为$("#name_change_button"),不是吗?

还想知道为什么你需要通过模拟按钮点击来打开叠加层 - 我对ClearBox了解不多,但是你的代码如何运行必要的JavaScript来打开叠加?我没有看到锚元素中的任何东西(据我理解)除了打开/name_change.htm之外还会做任何事情。

答案 1 :(得分:0)

无法解决这个问题。在显示clearbox JS dev演示站点后,他无法解决它。 所以我最终运行了这样一个更简单的解决方案: http://weblogs.asp.net/jeff/archive/2006/10/25/Modal_2D00_style-pops-in-Javascript-and-CSS.aspx

答案 2 :(得分:0)

通过将GET参数设置为url:

,我找到了如何在页面加载时打开clearbox
if (isset($_GET['id'])) {
echo "<script>$(window).load(function () {
CB_Open('href=mymodal.php?id=".$_GET['id'].",,width=700,,height=700');
});
</script>
";
}

需要:PHP / jQuery / Clearbox.js

享受!