如何在inner.html中调用函数

时间:2018-12-13 12:43:47

标签: javascript html

这是我在JS文件中的正常功能。我需要在closeHomeScreenPopup内部定义的document.getElementById("addToHomeScreenPrompt").innerHTML函数。如您所见,我已经将onclick作为字符串传递了。

export default function register() {
  // Checks if should display install popup notification:
  if (isIos() && !isInStandaloneMode()) {
    function closeHomeScreenPopup() {
      console.log("jkjilkjlkjlkjlkjlkjlk");
    }
    document.getElementById("addToHomeScreenPrompt").innerHTML =
      '<div onclick="closeHomeScreenPopup()"><span class="plush--sign">+</span><p>Install the webapp on your iPhone:tap <img style="width: 20px; margin: 0 4px;" alt="" src="img/share_icon.png"/> and then Add to homescreen.</p></div>';
  }
}

但是在onclick上进行div时出现错误

Uncaught ReferenceError: closeHomeScreenPopup is not defined
    at HTMLDivElement.onclick (temperature-schedule?roomId=2:51)

如何从closeHomeScreenPopup内部调用inner.html

1 个答案:

答案 0 :(得分:2)

JS中的所有内容都必须包含作用域。因此,如果直接在 register 函数中定义函数,则该函数将不会绑定到 window 对象。

closeHomeScreenPopup 函数应全局定义

 window[closeHomeScreenPopup] = function() {
      console.log("jkjilkjlkjlkjlkjlkjlk");
    }

function closeHomeScreenPopup() {
  console.log("jkjilkjlkjlkjlkjlkjlk");
}
document.getElementById("addToHomeScreenPrompt").innerHTML =
  '<div onclick="closeHomeScreenPopup()"><span class="plush--sign">+</span><p>Install the webapp on your iPhone:tap <img style="width: 20px; margin: 0 4px;" alt="" src="img/share_icon.png"/> and then Add to homescreen.</p></div>';
<div id="addToHomeScreenPrompt"></div>

相关问题