我有一个使用协议相关URL的Web应用程序,以尽可能保持动态,问题是在某些情况下这些不起作用,例如作为第三方身份验证的重定向URL,所以问题是有一些我可以指向一个重定向网址,该网址位于HTML data-redirect-url="//abc.com/auth.php"
中引用为<button>
属性的HTML代码中,并根据活动协议将http / https添加到其中?
长话短说。 如果是HTTP
替换
(php-regex)data-redirect-url="//(.+?)"
与
(php-regex)data-redirect-url="http://$1"
如果是HTTPS,
而是使用 (php-regex)data-redirect-url="https://$1"
我对js非常不好(实际上我可以尽量避免使用它),所以尽量保持代码可以理解并且不太复杂。
答案 0 :(得分:2)
您可以使用location.protocol
返回当前网址的协议。 http:
或https:
根据您的评论,您有一个按钮:
<button class="btn btn-block btn-lg btn-info" data-redirect-url="//somedynamicallygeneratedurl">
要更改data-redirect-url
,请使用:
var urlButtons = document.querySelectorAll('.btn[data-redirect-url]');
for(var _index = 0; _index < urlButtons.length; _index++) {
var btn = urlButtons[_index];
btn.setAttribute('data-redirect-url', location.protocol+btn.getAttribute('data-redirect-url'));
console.log(btn.getAttribute('data-redirect-url'));
}
答案 1 :(得分:2)
我在这个解决方案中使用了一些jQuery,但这可能会有所帮助 它准备好后会改变你的HTML
您唯一需要做的就是将其粘贴到您的页面中
$( document ).ready(function(){
var el = $('[data-redirect-url]')
el.each(function(el){
var i = $(this).attr('data-redirect-url');
$(this).attr('data-redirect-url', location.protocol+i)
});
});