Как правильно использовать parseInt для выбора / проверки элемента span из расширения chrome - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь использовать parseInt, чтобы определить, равен или больше элемент span в моем расширении Google Chrome.

Я пытаюсь проверить это "0" изменить и при изменении запустить указанный c URL-адрес. См. изображение для справки

Вот снимок экрана с опцией "inspect" из chrome.

Вот эта страница HTML:

<div id="onlinebar" style="text-align: right">

	<a href="javascript:win1()" class="tb_options" title="Kalbėkis su savo piratais.">Užsuk į smuklę</a>&nbsp;&nbsp;| &nbsp;&nbsp;

	<span id="tb_gang" class="tb_options" onClick="ShowTbPopup(this); obShowHide(0)">My Fleet: (<b>2</b>)</span>&nbsp;&nbsp;| &nbsp;&nbsp;

	<span id="tb_friend" class="tb_options" onClick="ShowTbPopup(this); obShowHide(1)">My Friends: (<b>2</b>)</span>&nbsp;&nbsp;| &nbsp;&nbsp;

	<span id="tb_enemies" class="tb_options" onClick="ShowTbPopup(this); obShowHide(2)">My Enemies: (<b>0</b>)</span>&nbsp;&nbsp;&nbsp;&nbsp;

	<a id="closebox" href="#" onclick="javascript:var conf = confirm('Are you sure you want to remove the login box? (It can be turned back on from settings)'); if(conf){ document.getElementById('onlinebar').style.display='none'; setBarPrefs('11769'); }" style="margin-right:20px;"><img src="/images/close.gif" border="0"/></a>

</div>

Вот что я пробовал:

function checkEnemies(){
	numEnemies = parseInt($$("[id^=tb_enemies]")[0].title.split(" ")[0]);
	if (numEnemies >= 1){
		$$("a[href*='sea']")[0].click();
		return true;
	}
	return false;
}


var bool = checkEnemies();

А также это:

function checkEnemies(){
	numEnemies = parseInt($$('#tb_enemies')[0].title.split(" ")[0]);
	if (numMessages >= 1){
		$$("a[href*='sea']")[0].click();
		return true;
	}
	return false;
}


var bool = checkEnemies();

Спасибо за любую помощь, которую вы можете предложить.

-Shane

1 Ответ

0 голосов
/ 30 января 2020

Число, по-видимому, не установлено как значение атрибута title, вы можете получить его непосредственно из содержимого элемента, вот пример:

// jQuery

let number = parseInt($("#tb_enemies b").text());
console.log("jQuery the number is:", number);

// vanilla JavaScript

number = parseInt(document.querySelector("#tb_enemies b").textContent);
console.log("vanilla JavaScript the number is:", number);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="onlinebar" style="text-align: right">

	<a href="javascript:win1()" class="tb_options" title="Kalbėkis su savo piratais.">Užsuk į smuklę</a>&nbsp;&nbsp;| &nbsp;&nbsp;

	<span id="tb_gang" class="tb_options" onClick="ShowTbPopup(this); obShowHide(0)">My Fleet: (<b>2</b>)</span>&nbsp;&nbsp;| &nbsp;&nbsp;

	<span id="tb_friend" class="tb_options" onClick="ShowTbPopup(this); obShowHide(1)">My Friends: (<b>2</b>)</span>&nbsp;&nbsp;| &nbsp;&nbsp;

	<span id="tb_enemies" class="tb_options" onClick="ShowTbPopup(this); obShowHide(2)">My Enemies: (<b>0</b>)</span>&nbsp;&nbsp;&nbsp;&nbsp;

	<a id="closebox" href="#" onclick="javascript:var conf = confirm('Are you sure you want to remove the login box? (It can be turned back on from settings)'); if(conf){ document.getElementById('onlinebar').style.display='none'; setBarPrefs('11769'); }" style="margin-right:20px;"><img src="/images/close.gif" border="0"/></a>

</div>

Для этого нужно получить текстовое содержимое первого <b> элемента внутри элемента с идентификатором tb_enemies и проанализировать этот текст в целое число.

...