нашлась довольно интересная задача, пишу расширение для google chrome и столкнулся с проблемой, когда мне требуется из спарсеного <script type="text/javascript">
получить параметр.
Имеется код:
for(let elem of document.getElementsByClassName('search-results'))
{
var test = elem.getElementsByTagName('script');
console.log(test[0]);
}
Ответ приблизительно:
<script type="text/javascript">
if(!wavesurfer) var wavesurfer=[];
//if(!loaded) var loaded=[];
var eq=wavesurfer.length;
var ua = navigator.userAgent.toLowerCase();
var msie = ua.indexOf("trident");
var msedge = ua.indexOf("edge");
var vivaldi = ua.indexOf("vivaldi");
var showProgress = function (percent) {
$j("#wave291392 .wave-loader").html("loading " + percent + "%");
$j("#wave291392 > wave").css({opacity:0.2});
};
var hideProgress = function () {
$j("#wave291392 .wave-loader").empty();
$j("#wave291392 > wave").css({opacity:1});
};
wavesurfer[eq].backend.song = "/streamers/play.php?id=1567959606.4474:dea6d4ed2ec96ae95852fc6d169edc61b8bc42b7:c5aa1c56b246a120698f53f01b9ff6faebdec2ff90f2f80e1f2c473358b7fd0bdad4925466967141c20c47d75c61b45eeb84ce92bf1c3e343f3f7be734dc10c041b488aa8cae39dd141b676c7ef204bac9f2793aab4176924f534b8432f9c86075787d7bdddac548299a76a001f5cf499dd465b223b06b61b39b00c53f65aad785931c39016b2c3dcd903b94bb1eca0c676466a3e71c8eafece06dbd3d9eaba728edc752c9d3ec148177c37f5236e1b10642654f098b146a654c905aa0e82c74a203479c94b28a8cf103455b775ddfe98ee8817fa5e664c33da26d53a2c69e5ed31a1fe5c2f685677a67ffc509f9ec9743f6f072a2f3fa6985142a9dd63c9ae5e7db19d6eebac71aa271646b32a90ae8f6b6f96b30301fedb7beda5b301fb494";
И из него нужно получить только переменную wavesurfer[eq].backend.song
. Как можно это сделать?
// Ну помимо того, что
console.log( wavesurfer[0].backend.song );
/* Если вдруг переменная не глобальная */
for(let elem of document.querySelectorAll('.search-results')){
let script = elem.querySelector('script');
console.log( script.textContent.match(/\.backend\.song\s?=\s?("|'|`)(.*?)\1/)[2] );
}
<div class="search-results">
<script type="text/javascript">
// Какой-то код.
let wavesurfer = [{backend: {song: null}}]
let eq = 0;
wavesurfer[eq].backend.song = "bubu";
</script>
</div>
P.s. https://regex101.com/r/at1VIk/1 — можно навести курсор на каждый символ и посмотреть, что оно значит.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Помогите понять в чем проблема с методом ganttcreateTask()
В своем тренировочном проекте столкнулся с следующей проблемойВ проекте есть старницы где формы подгружаются динамически в виде таблице...