Как перенаправить на другую страницу и принудительно обновить на этой странице, чтобы Javascript работал - PullRequest
0 голосов
/ 10 июня 2019

У меня есть веб-страница, где я использую JavaScript для перенаправления на другую страницу.Вторая страница отображается правильно, но я не могу запустить javascript при загрузке второй страницы.Вот 3 способа, которыми я пытался заставить свою функцию javascript загружаться на вторую страницу:

  1. Поместить функцию в качестве параметра onload для тела html
  2. Пробовал вызывать ее как встроенный JavaScript внутризаголовок и тело страницы
  3. Использовал jquery $ (документ). Готов попытаться вызвать функцию при загрузке страницы

Я упростил функцию, чтобы сделать ее простымубедитесь, что проблема не в коде функции, а также установите точку останова на функцию, чтобы она не вызывалась.Код не будет запускаться при загрузке страницы, но если я обновлю браузер, он будет работать.

Страница, на которую я пытаюсь перенаправить, генерируется сторонним приложением, которое у нас есть, поэтому яограничено тем, насколько я могу изменить его, но я могу вносить базовые изменения HTML / javascript на страницу.Вторая страница также построена с использованием Angular.

Есть идеи, как заставить эту вторую страницу всегда выполнять мой код JavaScript, когда я перенаправляю на него?Ниже приведен код со второй страницы с функцией myTest (), которую я пытаюсь запустить.Если при загрузке этой страницы я нажимаю «Обновить» в браузере, я получаю предупреждение myTest 3 раза.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <title ng-controller="TitleCtrl" ng-bind="title"></title>

    <!-- third party stylesheets -->
    <link rel="stylesheet" type="text/css" href="third-party/bootstrap-3.3.5/css/bootstrap.min.css" />
    <link rel="styleSheet" type="text/css" href="third-party/angular-ui-grid-3.1.1/ui-grid.min.css" />
    <link rel="stylesheet" type="text/css" href="third-party/font-awesome-4.7.0/css/font-awesome.min.css" />

    <script type="text/javascript" src="angular-1.5.0/angular.min.js"></script>
    
	//editing out list of about 50 javascript files to make code example shorter
	
<script type="text/javascript">
  function myTest() {
    alert("My Test");
  }
</script>	
</head>
    <body class="app-body" onload="myTest();">
        <ng-include src="'components/property-pages/field-scripts.html'"></ng-include>
        <ng-include src="'components/form-editor/form-editor-field-scripts.html'"></ng-include>
        <ng-include src="'components/form-editor/field-properties-dialog-definition-scripts.html'"></ng-include>
        <ng-include src="'components/form-editor/field-properties-scripts.html'"></ng-include>
        <ng-include src="'components/lib/custom-handler/custom-handler-tooltip-script.html'"></ng-include>

        <!-- alert notification -->
        <div ng-include="'components/alerts/alert.html'"
             ng-controller="AlertController as vm">
        </div>

        <!-- navigation bar -->
        <navbar></navbar>

        <!-- main container -->
        <div id="main-container"
             ng-controller="MainContainerController as vm"
             ng-style="{ top: vm.getTop(), height: vm.getHeight() }">
            <ng-view></ng-view>
        </div>

        <!-- loading status panel -->
        <div ng-include="'components/loading/loading.html'"
             ng-controller="LoadingController as vm">
        </div>

        <!-- pre-bootstrap loading status panel -->
        <div class="startup-loading">
            <span class="fa fa-spinner fa-pulse fa-3x fa-fw"></span>
        </div>

        <!-- pre-bootstrap error status panel -->
        <div class="startup-error">
            <span class="fa fa-exclamation-circle fa-3x fa-fw"></span>
            <div id="startup-error"></div>
        </div>
		
		<script type="text/javascript">
		  myTest();
		  
		  $( document ).ready(function() {
			myTest();
		  });
		</script>		
    </body>
</html>

1 Ответ

0 голосов
/ 11 июня 2019

Какой браузер вы используете?

Я видел нечто подобное в Firefox, в то же время то же самое работает в другом браузере.

$ (document) .ready () не запускается после перенаправления с помощью window.location

...