【问题标题】:How can I write a router to open a Joomla Squeezebox modal from a URL parameter?如何编写路由器以从 URL 参数打开 Joomla Squeezebox 模式?
【发布时间】:2013-04-12 06:01:37
【问题描述】:

我有一个使用 Squeezebox 的 Joomla 网站,它是 Joomla 的默认模态 javascript。

我一直在使用带有模板覆盖的 Squeezebox。例如,我有一个链接可以在作为模板覆盖的一部分的每个页面上查看:

<a href="http://www.viddler.com/embed/cd1b1bc5/?f=1&autoplay=1&player=full&secret=104492144&loop=0&nologo=1&hd=1" class="modal vid-primary" rel="{url:'http://www.viddler.com/embed/cd1b1bc5/?f=1&autoplay=1&player=full&secret=104492144&loop=0&nologo=1&hd=1', handler: 'iframe', size: {x:741, y:459} }" style="display: block; position: relative;">

这些链接以模式打开视频。

如果存在 URL 参数,我需要做的是能够在加载时打开此视频。例如:

http://mysite.com/page.html?vidload=vidload

所以我需要一个路由器来处理这个问题。我found something 接近我所追求的,但不太清楚如何使它工作。到目前为止,这是我所得到的:

window.addEvent('domready', function() {
 function popModal() {
  SqueezeBox.open($('vid-primary'), {
        handler: 'adopt'
    });
}

var hash = window.location.hash;
if (hash.substring(1) == 'vidload') {
  popModal();
}

});

【问题讨论】:

    标签: javascript joomla mootools squeezebox


    【解决方案1】:

    在模板覆盖中包含模态库:

    <?php JHtml::_('behavior.modal'); ?>
    

    使用这样的链接:

    <a class="modal" rel="{handler: 'iframe', size: {x: 800, y: 500}}" title="Modal box title" href="[your link]" >open</a>
    

    更多内容 Squeezebox DocumentationJHtml::_('behaviour.modal') options

    更新: 我认为下面阿迪迪的回答就是你所追求的。 如果你还是加载 MooTools More,你可以使用URI class:

    var uri = new URI (location.href);
    if (uri.getData('vidload') == 'vidload') {
        SqueezeBox.open($('vid-primary'), { handler: 'adopt' });
    }
    

    【讨论】:

    • 谢谢,但这不是我想要的 - 如果您想在每次页面加载时单击打开或获取模式以打开 onload,则模式工作得很好。我需要获取一个 URL 参数并让它触发模态 onLoad。
    【解决方案2】:

    您正在尝试获取哈希,但根据您的需要它是空的, 如果你需要的是一个获取查询字符串参数的函数,你可以使用这个简单的函数:

    function getURLParam(key,target){
        var value = '';
        if(!target){
            target = location.href;
        }
    
        var pattern = key + '=([^&#]+)';
        var o_reg = new RegExp(pattern,'i');
        var matches = o_reg.exec(target);
        if(matches && matches[1]){
            value = matches[1];
        }
    
        return value;
    }
    
    if(getURLParam('vidload') == 'vidload'){
      popModal();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-25
      • 1970-01-01
      • 2020-06-27
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多