Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过HTML代码中的搜索和替换填写协议相关URL_Javascript_Html_Http_Url_Replace - Fatal编程技术网

Javascript 通过HTML代码中的搜索和替换填写协议相关URL

Javascript 通过HTML代码中的搜索和替换填写协议相关URL,javascript,html,http,url,replace,Javascript,Html,Http,Url,Replace,我有一个web应用程序,它使用协议相关url使一切尽可能动态,问题是在某些情况下,这些url不起作用,例如,作为第三方身份验证的重定向url,因此问题是,我可以通过某种方式指向重定向url,该url位于作为数据重定向url引用的HTML代码中=“//abc.com/auth.php”属性在HTML中,并根据活动协议预先向其发送http/https 顺便说一句,我知道只通过HTTPS提供内容更好,人们可能不想再使用这些URL了,但我希望是动态的,因为例如,使用localhost测试HTTPS确实不

我有一个web应用程序,它使用协议相关url使一切尽可能动态,问题是在某些情况下,这些url不起作用,例如,作为第三方身份验证的重定向url,因此问题是,我可以通过某种方式指向重定向url,该url位于作为
数据重定向url引用的HTML代码中=“//abc.com/auth.php”
属性在HTML
中,并根据活动协议预先向其发送http/https

顺便说一句,我知道只通过HTTPS提供内容更好,人们可能不想再使用这些URL了,但我希望是动态的,因为例如,使用localhost测试HTTPS确实不需要


长话短说。 如果HTTP

替换 (php正则表达式)
数据重定向url=“/(.+?)”

与 (php regex)
数据重定向url=“http://$1”

如果是HTTPS

改用 (php regex)
数据重定向url=“https://$1”


我对js非常不好(事实上,我尽量避免使用js),所以尽量让代码易于理解,如果可能的话不要太复杂。

您可以使用
location.protocol
返回当前URL的协议。
http:
https:

根据您的评论,您有一个按钮:

<button class="btn btn-block btn-lg btn-info" data-redirect-url="//somedynamicallygeneratedurl">

您可以使用
location.protocol
返回当前URL的协议。
http:
https:

根据您的评论,您有一个按钮:

<button class="btn btn-block btn-lg btn-info" data-redirect-url="//somedynamicallygeneratedurl">

我在这个解决方案中使用了一些jQuery,但这可能会奏效 它会在HTML就绪时更改您的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)
    });
});

我在这个解决方案中使用了一些jQuery,但这可能会奏效 它会在HTML就绪时更改您的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)
    });
});

看起来不错,而且也很小(我最大的js问题之一是巨大的ajax脚本,它往往会在移动互联网上出现故障)我很快就会尝试。但是数据重定向URL实际上是js中的一个变量?因为它至少在代码中是html元素的一部分。您编写的方式是将它放入变量中…如果您将它放入htmlwell中,这将不起作用。我实际上需要替换html代码,因为它位于
数据重定向URL中e> 是您的javascript变量。为了更清楚,我将其更改为
var url
。它看起来不错,但也很小(我最大的js问题之一是巨大的ajax脚本,它往往会在移动互联网上出现故障)我很快就会尝试。但是数据重定向URL实际上是js中的一个变量?因为它至少在代码中是html元素的一部分。您编写的方式是将它放入变量中…如果您将它放入htmlwell中,这将不起作用。我实际上需要替换html代码,因为它位于
数据重定向URL中e> 是您的javascript变量。为了更清楚,我将其更改为
var url
。如果这些在浏览器中的重定向中不起作用(哪个?):引发错误报告。这不是针对浏览器重定向,而是所谓的重定向URL,如果这些URL在浏览器重定向中不起作用,则第三方授权提供商可以将用户放回站点(哪个?):引发错误报告。这不是针对浏览器重定向,而是所谓的重定向URL,由第三方授权提供商将用户放回站点可能这件事来得有点晚(可能jquery加载时间太长,不管是什么)但是来自clef的脚本似乎在您的脚本干预之前获取URL,但结果是存在的。可能这件事来得有点晚(可能jquery加载时间太长,不管是什么),但是来自clef的脚本似乎在您的脚本干预之前获取URL,但结果是存在的。