嘿,伙计们,我有一个项目,我需要在特定页面上触发一个函数。
用户将输入如下内容:
var dexiTriggerPages = "/user/*/register, /user/*/pay";如果当前url与通配符url匹配,则函数应触发转换。url不能包含给定路径之后的另一个路径。目前,我的当前代码根本无法工作。
// Trigger Conversions for Specific Pages
if(dexiTriggerPages.trim() != '')
{
var urls = document.deximedia.explode(',',dexiTriggerPages);
for (var i=0;i<urls.length;i++)
{
var url = urls[i];
if(url.indexOf("*") != -1)
{
var pass = true;
var segments = document.deximedia.explode('*',url);
for (var i=0;i<segments.length;i++)
{
if(document.URL.indexOf(segments[i]) == -1)
{
pass = false;
}
}
if(pass)
document.deximedia.dexiTriggerConversion();
}
else
{
if(document.URL.indexOf(url) != -1)
{
document.deximedia.dexiTriggerConversion();
}
}
}
}任何帮助,使这一工作将是非常感谢!
发布于 2014-01-24 19:50:04
我能够通过以下方法解决这个问题:
// Trigger Conversions for Specific Pages
if(dexiTriggerPages.trim() != '')
{
var urls = document.deximedia.explode(',',dexiTriggerPages);
var pathArray = document.deximedia.explode('/',window.location.pathname.replace(/^\/|\/$/g, ''));
for (var i=0;i<urls.length;i++)
{
var url = urls[i].trim().replace(/^\/|\/$/g, '');
var urlPaths = document.deximedia.explode('/',url);
if(pathArray.length == urlPaths.length)
{
var pass = true;
for (var a=0;a<pathArray.length;a++)
{
if(pathArray[a] != urlPaths[a] && urlPaths[a] != '*')
pass = false;
}
if(pass == true)
document.deximedia.dexiTriggerConversion();
}
}
}发布于 2014-01-24 19:28:17
您愿意使用正则表达式来完成这个任务吗?
(^/user/(.*)/register$|^/user/(.*)/pay$)您可以在本网站上测试它。
https://stackoverflow.com/questions/21340448
复制相似问题