簡體   English   中英

從另一個文件獲取 Javascript 變量或值

[英]Getting Javascript Variable or value from another file

我有一個文件./js/onload.js ,里面有這段代碼。

$('#fb5-book').turn({
                display: DISPLAY,
                duration: 600,
                acceleration: true,
                elevation: 50,
                page: nrPage,
                when: {
                    first: function (e, page) {
                        $('.fb5-nav-arrow.prev').hide();
                    },

                    turned: function (e, page) {

                        Book_v5.currentPage = page;  //Do not delete this, other function use this.
                        
                        if (page > 1) {
                            $('.fb5-nav-arrow.prev').fadeIn();
                            //$('#fb5-about').hide();
                        }

                        if ((page == 1 && RTL == 'false') || (page == $(this).turn('pages') && RTL == 'true')) {
                            $('#fb5-about').css('z-index', 11);
                        }

                        if (page < $(this).turn('pages')) {
                            $('.fb5-nav-arrow.next').fadeIn();
                        }

Book_v5.currentPage = page; 如果我添加alert(page)console.log(page)我可以在控制台中獲取警報和數據。

我有一個 index.php 文件。 因為我想創建一個變量let pageNumber=1並且 pageNumber 的值將根據./js/onload.js中的page值更改 我該怎么做?

我在./js/onload.js中試過這個

let pageNumber=page;

<script>標簽內的index.php中,我嘗試調用pageNumber它不起作用。 我是 JS 的新手。

有幾種方法可以在 JavaScript 文件之間共享頁面變量的值。 這里有三個選項:

您可以使用全局變量。 在./js/onload.js中,可以這樣定義一個全局變量:

window.pageNumber = page;

然后,在 index.php 中,您可以像這樣訪問 pageNumber 的值:

讓 pageNumber = window.pageNumber; 您可以使用 window.postMessage 方法。 在./js/onload.js中,可以這樣給父window發送消息:

window.parent.postMessage(page, '*');

然后,在 index.php 中,您可以像這樣收聽來自子 window 的消息:

window.addEventListener('message', function(event) {
  let pageNumber = event.data;
});

您可以使用像 PubSubJS 這樣的庫來發布和訂閱事件。 在./js/onload.js中,你可以這樣發布一個事件:

PubSub.publish('pageNumber', page);

然后,在 index.php 中,你可以這樣訂閱事件:

PubSub.subscribe('pageNumber', function(msg, pageNumber) {
  console.log(pageNumber);
});

最后,我找到了答案。

內部index.php

<script>
let pageNumber = 1;

function updatePageNumber(newPageNumber) {
  pageNumber = newPageNumber;
}
</script>

onload.js里面我添加了 function

turned: function (e, page) {
  // other code here
  updatePageNumber(page);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM