【问题标题】:Magento - Open Page as LightBox Instead in New Window or TabMagento - 在新窗口或标签中打开页面作为灯箱而不是
【发布时间】:2014-03-26 22:19:36
【问题描述】:

我在这里需要一些建议,我用谷歌搜索了一整天,但没有发现任何有用的东西,只是部分代码和建议。

如果你看我的演示页面

DEMO PAGE

您可以看到带有一些图像和价格的报价框,如果您将鼠标悬停在它上面,它将显示带有一些数据的透明窗口,但重要的是有一个名为 PREGLED 的按钮(这是一个词VIEW)。

当你点击它时,它会在这个产品单页上引导。

有没有可能在弹出灯箱中打开这个“产品页面”,而不是去加载新页面?

我对 Magento 代码真的不是很熟悉,但现在我有机会了解一下。 因此,非常感谢您提供任何建议。

谢谢...

更新

非常感谢我可以执行代码并启动弹出窗口,但它非常难看,我没有考虑布局和其他所有内容;(。现在,我需要一些关于如何使这个弹出窗口更吸引眼球的建议-catchy? 如果没有,那我就用普通的新窗口....

【问题讨论】:

    标签: javascript jquery magento popup lightbox


    【解决方案1】:

    我让 shadowbox 在 Magento 中为我工作,与 lightbox 非常相似。我就是这样做的。只需通过添加核心 js 和 css 文件将 shadowbox 添加到 Magento。

    此答案假定您已安装并正常运行 jQuery,请查看此链接以了解 shadowbox 的 jQuery 要求:https://github.com/mjijackson/shadowbox

    要使用内部托管的文件,请下载最新版本并将以下代码放入:/app/design/frontend/default/[YourTheme]/layout/local.xml

    <default>
     <reference name="head">
      <action method="addItem"><type>skin_css</type><name>js/shadowbox.css</name></action>
      <action method="addItem"><type>skin_js</type><name>js/shadowbox.js</name></action>
     </reference>
    </default>
    

    将 shadowbox.css 和 shadowbox.js 放在 /skin/frontend/default/[YourTheme]/js/ 文件夹中。 然后你可以在你的链接中添加属性 rel="shadowbox" 以使用 shadowbox 打开,例如:

    <a href="http://saneldesign.com/..srcu-jadrana.html" rel="shadowbox">
     <i class="icon-eye-open icon-white"></i>
     Pregled </a>
    

    如果您希望在站点范围内运行 shadowbox,您必须通过在 Admin > System > Configuration > General > Design > Footer > Miscellaneous HTML 中添加以下代码进行初始化:

    <script type="text/javascript"> 
    Shadowbox.init();
    </script>
    

    如果您遇到任何 javascript 错误,您可能需要检查冲突 ($)、原型并确保 jQuery,尤其是 shadowbox 以无冲突模式运行。我使用以下代码并根据需要在 jQuery 文件中将 $ 更改为 $j。

    var $j = jQuery.noConflict();
    

    这里还有额外的配置选项:http://shadowbox-js.com/options.html

    【讨论】:

    • 您好,我使用了外部托管文件,将所有内容添加到 XML 文件中,并为按钮使用了这种代码:&lt;a href="&lt;?php echo $url;?&gt;" rel="shadowbox" class="btn btn-g btn-small"&gt;&lt;i class="icon-eye-open icon-white"&gt;&lt;/i&gt; Pregled &lt;/a&gt; 但它不起作用。,我错过了什么?
    • 您好,现在可以使用了,外部 linx 无法使用 :)。您能否在布局和内容设计方面帮助我一点,我怎样才能让这个弹出窗口有点引人注目?有什么建议吗?
    • 我认为您应该检查选项页面(列出的最后一个链接)以获取可以传递给弹出窗口本身的一些选项。即玩家:['html','iframe'],initialHeight:[],initialWidth:[]您也可以使用css将样式应用于阴影框弹出窗口。请参阅此处的底部示例:dev.eyedea.eu/samples/shadowbox
    【解决方案2】:

    我会将它构建为一个新模块,其中包含一个 IndexController.php,其中包含一个 ajaxprodAction 方法。之后,您需要确保在要加载弹出窗口的页面上也加载了产品视图特定的 JS,这对于任何 addToCart-js 等工作都很重要。

    ajaxprodAction 方法加载显示产品信息的块并将它们返回给您的 JS,该 JS 将其插入弹出窗口。您还需要确保为产品视图块提供正确的产品模型对象,以便它知道要显示哪个产品。

    此 stackoverflow 问题包含有关模块控制器所需内容的更详细信息: Ajax in magento (load product view block)

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-14
      • 2012-09-01
      • 2015-06-11
      • 1970-01-01
      • 2012-04-29
      相关资源
      最近更新 更多