用JS进行URL检查

时间:2018-09-18 12:01:24

标签: javascript

我有两个脚本,第一个单击按钮,然后浏览器打开一个新窗口,我应该在第二个脚本旁边单击另一个按钮,是否可以同时运行它们,我是要把这些脚本组合在一起?

function run() {
var confirmBtn = document.querySelector(".selector,anotherSelector ");
}

出现这个新窗口之后,这是我脚本的第二部分

var rooms = document.querySelectorAll(" .btn-a-offers");
console.log(rooms);
for (var room = 0; room < rooms.length; room++) {
    rooms[room].click();
}
var prices = document.querySelectorAll(" .li-right-side>strong");
console.log(prices);
for (var price = 0; price < price.length; price++) {

}
var prices = [];
document.querySelectorAll(".new-pa-hotelsoffers .li-right-side > strong").forEach(function(price) {
    prices.push(parseFloat(price.innerHTML.replace(/[^0-9.]/g, "")))
})
console.log(
    Math.min(...prices).toFixed(2)
)

我的英语不好,所以我想确保我对所有内容的解释都正确,第二个脚本必须在新窗口中执行,第一个脚本之后会打开

2 个答案:

答案 0 :(得分:0)

您应该像这样在URL查询中传递一些参数:

// first-script.js
openNewWindow('http://example.com?run-second-script=1') // openNewWindow is fake function, just for demo

// second-script.js
if (window.location.search.includes('run-second-script=1')) { ... your code here ...}

答案 1 :(得分:0)

根据应用程序的逻辑依赖性和功能的使用,可以在第二页的document.ready函数中执行第二个函数。

示例:

<script>
//jQuery
$( document ).ready(function() {
    secondFunction();
});

//Pure JS
function r(f){/in/.test(document.readyState)?setTimeout('r('+f+')',9):f()}

r(function() {
    secondFunction();
});
</script>

但是,如果页面要独立运行,并且 second 函数仅响应 first 函数的执行,则该解决方案将不是您正在寻找的那个。

在该功能必须完全依赖于 first 功能的使用的情况下,您可以解析URL中的值(最好称为GET变量)并检查如果已设置该值。

示例:

<script>
functionOne() {
    window.location.href = '/your_page.php?click=1';
}
</script>

然后在第二页上,您需要检索GET变量。

<?php
$clicked = $_GET['click'];
?>

然后您可以执行检查以查看变量是否已设置,并根据该逻辑触发函数。

<?php
if($clicked != "") {
    echo '
    <script>
    functionTwo();
    </script>';
}
?>

另一种方法可以使用AJAX并在AJAX的成功函数中执行其他函数。这样,您就可以避免使用GET变量,该变量在URL中可见。

示例:

<script>
functionOne() {
    $.ajax({
        type : "POST", //or GET
        url : "/your_page.php",
        data : {
            //parse your POST variable data if any
            // variable : value,
            // anotherVairable : anotherValue
            // [....]
        },
        success: function (html) {
            //Success handling
            secondFunction();
        }
    })
}
</script>

请注意,示例中使用的AJAX是jQuery AJAX,因此,如果您想使用一些涉及此结构的AJAX逻辑,则需要包括一个jQuery库。