PageSourceSearch

https://media.belmise.com/wp/wp-content/themes/thesonic/library/ab_tester/js/ab_test.js?fver=20250618021537

js belmise.com collected 2026-10-03 21:06:17 UTC 2,330 bytes, 78 lines download raw bytes

1"use strict";
2
3var tsncAbDisp = async function tsncAbDisp() {
4  var tsncAbContents = document.getElementsByClassName("tsnc-ab-container");
5
6  var rand = function rand(array) {
7    // A or Bをランダムに決定
8    var ratio = Math.random() * 100;
9    var i = 0;
10
11    for (var pat in array) {
12      i += array[pat][1];
13
14      if (ratio < i) {
15        return array[pat][0];
16      }
17    }
18  };
19
20  var tsncAbAjax = function tsncAbAjax(id, pat) {
21    var pageUrl = location.href;
22    var params = new URLSearchParams(); // URLパラメーターとしてPOSTする要素を作成
23
24    params.append("id", id);
25    params.append("pat", pat);
26    params.append("page", pageUrl);
27    params.append("action", tsncAbTest.action);
28    params.append("ajax_nonce", tsncAbTest.ajaxNonce);
29    var request = fetch(tsncAbTest.ajaxEndpoint, {
30      method: "POST",
31      cache: "no-cache",
32      body: params
33    });
34  };
35
36  var tsncAbPattern = rand([["a", 50], ["b", 50]]);
37
38  var _loop = async function _loop(i) {
39    var dataId = tsncAbContents[i].getAttribute("data-id");
40    var pageUrl = location.href;
41    var params = new URLSearchParams(); // URLパラメーターとしてPOSTする要素を作成
42
43    params.append("id", dataId);
44    params.append("pat", tsncAbPattern);
45    params.append("page", pageUrl);
46    params.append("_wpnonce", tsncAbTest.nonce);
47    var request = await fetch(tsncAbTest.endpoint + "/abtest", {
48      method: "POST",
49      cache: "no-cache",
50      body: params
51    }).then(function(response) {
52      if (response.ok) {
53        return response.json();
54      }
55
56      throw new Error("無効なレスポンスです。");
57    });
58    tsncAbContents[i].innerHTML = request.replace(/<!--[\s\S]*?-->/g, ""); // コメントアウトされた要素を取り除きコンテナに追加
59
60    tsncAbContents[i].addEventListener("click", function(event) {
61      // クリック時に計測するイベントを追加
62      //event.preventDefault();
63      var rec = ["a", "button"];
64      rec.forEach(function(val) {
65        if (event.target.closest(val)) {
66          // タグが一致していたら
67          tsncAbAjax(dataId, tsncAbPattern);
68        }
69      });
70    });
71  };
72
73  for (var i = 0; i < tsncAbContents.length; ++i) {
74    await _loop(i);
75  }
76};
77
78window.addEventListener("DOMContentLoaded", tsncAbDisp);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.