Javascript在Ons-page Onsen UI的Pushed页面中无效

时间:2015-07-28 10:04:31

标签: javascript cordova onsen-ui

我正在使用Cordova / PhoneGap和Onsen UI。我有两个html页面。开关(按钮)按钮工作正常。但Javascript无法在search.html中运行

这是我的代码:

  • index.html(默认主页)
  • search.html

的index.html

...
<body>

<ons-navigator title="Navigator" var="myNavigator">
<ons-button
        onclick="myNavigator.pushPage('search.html', { animation: 'lift' })">
        Switch Page
</ons-button>
</ons-navigator>
</body>

search.html

<ons-page>
<script>
alert('Testing Javascript');
</script>
</ons-page>

2 个答案:

答案 0 :(得分:3)

调用search.html时会动态插入myNavigator.pushPage('search.html')页面。

以这种方式插入<script>标记时,代码不会被执行。

有关详细信息,请参阅此问题: Can scripts be inserted with innerHTML?

为了在推送页面时执行某些脚本,您可以使用postpush事件:

ons.ready(function() {
  myNavigator.on('postpush', function() {
    alert('Hello, world!');
  });
});

答案 1 :(得分:2)

如果将所有JavaScript放在js文件中并在单击按钮时调用该函数会更好,例如:

HTML

statement to be repeated

JS

<body>
  <ons-navigator title="Navigator" var="myNavigator">
    <ons-button
        onclick="myNavigator.pushPage('search.html', { animation: 'lift' }); callAlert();">
        Switch Page
    </ons-button>
  </ons-navigator>
</body>

或者,您可以使用function callAlert() { alert('Testing Javascript'); };事件(例如ons-navigator)来个性化您的代码,您可以查看它们documentation