自动将所有网站链接更改为联盟链接
Change all website links to affiliate links automatically
我希望能够在安装MediaWiki时自动将链接更改为附属链接。这将有助于减少管理链接的时间,以防将来需要更改代码。
这是我的GOG.com联盟方案的设置:我需要将此密钥附加到每个GOG.com链接的末尾:?pp=708a77db476d737e54b8bf4663fc79b346d696d2
gog.com/en/gamecard/baldurs_gate_the_original_saga/?pp=708a77db476d737e54b8bf4663fc79b346d696d2
一段代码,比如Javascript,是否可以拦截所有链接(比如http://www.gog.com/en/gamecard/baldurs_gate_the_original_saga/
)并在末尾附加附属代码,就像上面的例子一样?
我知道这段名为Amazon Associate Link Localiser的Javascript代码,它也做类似的事情。然而,它只适用于亚马逊链接,而且它还本地化了链接,这是我不想要的功能。
正确的方法是像那样使用LinkerMakeExternalLink mediawiki挂钩(您可以将其放在LocalSettings.pp:的底部
$wgHooks['LinkerMakeExternalLink'][] = 'ExampleExtension::exampleLinkerMakeExternalLink';
class ExampleExtension {
public static function exampleLinkerMakeExternalLink( &$url, &$text, &$link, &$attribs, $linktype ) {
if( strpos( $url, 'gog.com') !== false ) {
$url .= '?pp=708a77db476d737e54b8bf4663fc79b346d696d2';
}
return false;
}
}
不确定它对数百个链接的性能有多好。
// Plain Javascript
var links = document.getElementsByTagName('a');
for (var i = 0, max = links.length; i < max; i++) {
var _href = links[i].href;
if (_href.indexOf('gog.com') !== -1) {
links[i].href = _href + '?pp=708a77db476d737e54b8bf4663fc79b346d696d2';
}
}
DEMO
因此,您还可以使用jquery绑定任何链接点击。这样你就可以在飞行中进行链接评估。这个jsfiddle是一个粗略的运行,我认为你正在努力实现。这些警报只是为了您的利益,应该删除。
$("a").click(function() {
addAffiliate(this);
});
myCode = "?pp=708a77db476d737e54b8bf4663fc79b346d696d2";
myAmazonCode = "?tag=shihac-20"
function addAffiliate(link) {
alert("enterting script: " + link.href);
if ((link.href).indexOf("gog.com") > -1 && (link.href).indexOf(myCode) < 0) {
link.href = link.href + myCode;
}else if((link.href).indexOf("amazon.com") > -1 && (link.href).indexOf(myAmazonCode) < 0){
link.href = link.href + myAmazonCode;
}
alert(link.href);
return true;
}
http://jsfiddle.net/du47b/23/
更新:添加了代码和完全限定的路径
UPDATE:为其他代码添加了"else-if"块。使用"else-if"而不是另一个if块有望减少不必要的处理。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何使用jQuery自动打开页面上的所有链接
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jquery动画可以通过编程链接吗
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 单击页面上的链接后高度发生变化
- 将纯文本URL转换为可单击链接
- python-selenium-点击上升链接
- 一点javascript元编程&可链接的设置器
- ng视图外的链接重定向到ng视图内的页面
- 如何调用“;链接_;在onclick事件上使用Javascript
- 链接所有<a>Meteor
- 如何在Angular中的表的所有单元格中添加链接
- 自动将所有网站链接更改为联盟链接
- SEO使用联盟链接的安全方式
- 如何隐藏实际链接,但不提醒联盟链接来自重定向链接
- 出站联盟链接:第n次点击去房子