![](/img/trans.png)
[英]Why can't I use jQuery after it's dynamically injected from a chrome extension's content-script?
[英]Can a jquery script be invoked AFTER a PHP file has injected content into a HTML document?
我的網站:
按鈕:
onclick=gotoLPM()
進行調用。 gotoLPM()
腳本放在<head>
部分中。 jquery.copy-to-clipboard.js
插件,它也在<head>
部分。 問題:
<script src=>
放在<head>
和<body>
部分中,但腳本不會執行。 <p>
元素中並執行其余MySQL查詢后執行。 PHP代碼:
echo "<h1>Dark Sky Preserves</h1>";
if (mysqli_num_rows($resultDarksky) > 0) {
// Output of MySQL rows
while($row = mysqli_fetch_assoc($resultDarksky)) {
echo $row["name"]. "<br>";
echo "GPS coordinates: " . $row["latitude"] . ", " . $row["longitude"] . "<br/>";
echo "Hectacres: " . $row["area"] . str_repeat(' ', 5) . " Bortle scale: " . $row["bortle"] ."<br/>";
echo "<a href='".$row["link"]."' target='_blank'>". $row["link"] ."</a><br/>";
echo $row["comment"]. "<br/>";
echo "<br/>";
// BUTTON for lightpollutionmap.info
}
echo "<br/>";
echo "Check out the light pollution at your location. Click on your coordinates below and ";
echo "then paste into the top-left input field in lightpollutionmap.info<br/>";
echo "<button id='lightPollutionMapButton' onclick='gotoLPM()'>" .$q. "," .$r. "</button>";
echo "<br/>";
} // if no records match query - print 0 results
// BUTTON for lightpollutionmap.info
else {
echo "No designated dark sky preserve nearby, but click on your coordinates below and ";
echo "then paste into the top-left input field in ";
echo "lightpollutionmap.info website for dark skies near you:<br/>";
echo "<button id='lightPollutionMapButton' onclick='gotoLPM()'>" .$q. "," .$r. "</button>";
}
腳本文件(在HTML <head>
部分內):
function gotoLPM(){ $("#lightPollutionMapButton").CopyToClipboard(); window.open("https://www.lightpollutionmap.info", "_blank"); };
您可以使用javascript“defer”屬性來運行延遲腳本讀取DOM。 腳本或事件無法正常工作,因為腳本文件首先加載並嘗試在頁面加載完成之前讀取DOM。 這是怎么做到的
Move the
<script src="filepath_to_your_js"></script>
from <head></head> section to the end of the body i.e right before the </body> tag. Also add the "defer" attribute to your script tag like below
<script src="filepath_to_your_js" defer></script>
更新:
<script>
'defer'參數不起作用。 <p id='astroStuff'>
元素是一個位於遠程服務器上的PHP文件,通過AJAX,所以它不在DOM中。 $(document).on('click', 'identifier', function () { // do something });
感謝蒂姆的小費!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.