IEにおけるスペース画面の表示イベントについて

お世話になっております。
現在、スペースにアプリを作成しており、スペースへ遷移してきたときに処理を実行したいを考えております。
しかしながら、下記コードが、ポータルからスペースに遷移した時に動かない状況がIEのみ(IE11)で発生しております。
chromeやfirefoxでは動きますし、スペースが『ゲストスペース』の時はIEでも動くようになります。

解決案や原因、ヒントなどあるようでしたら、ご教示頂けますでしょうか。
宜しくお願い致します。

$(window).bind(“pageshow popstate”, function(event) {
var url = “https://[サブドメイン].cybozu.com/k/#/space/[スペースID]”; //スペースに設置する場合
var href = window.location.href;
if (url == href) {
alert(“処理”);
}
});

otsuka-y さん

とりあえず、イベント処理が実行されているか、またはhref の内容が何かを確かめるために、console.logで表示してみてはいかがですか?

IE なら、F12 で開発者ツールを表示し、コンソールタブで確認できます。

$(window).bind("pageshow popstate", function(event) {
var url = "https://[サブドメイン].cybozu.com/k/#/space/[スペースID]"; //スペースに設置する場合
var href = window.location.href;
console.log('href', href);
if (url == href) {
alert("処理");
}
});

rex0220さん

コメント頂きありがとうございます。

console.log追加し確認してみましたが、ポータルからスペースに遷移した時にイベント処理が実行されないようです。

前述のように、chromeやゲストスペースのときはイベント処理が実行されます。

なぜなんでしょうか?なにか思い浮かぶことでもあればご教示頂けると幸いです。

なんらかの原因で、pageshowイベントが処理されないようですね。

古いIEだとpageshowイベントがサポートされていなかった思いますが、画面によって動作が異なるのはわかりません。

pageshowではなく、onload をつかわれてはいかがでしょうか?

 

rex0220さん

onloadを試してみましたが、イベントが処理されません。

IEで、且つ、ポータルからスペースへ画面遷移の時だけイベントが処理されないですね。

kintoneの仕様なのでしょうか?代替案も思いつかない為、困っております。

 

スペース遷移の動作を見直してみました。location だけ変わっているようですね。

いろいろ試したところ、‘load hashchange’ だと、IE でもイベント処理出来ました。

試したコードです。

var Foo = function(pe) {
console.log(pe, location.href);
};

window.addEventListener( 'load', Foo('(addEventListener load)'), false );
window.addEventListener( 'onload', Foo('(addEventListener onload)'), false );

document.addEventListener('DOMContentLoaded', function() {
console.log('DOMContentLoaded', location.href);
});

$(window).on('load', function() {
console.log('(on) load', location.href);
});

$(document).on('ready', function() {
console.log('(on) ready', location.href);
});

$(window).on("pageshow popstate", function(event) {
console.log('(on) pageshow popstate', location.href);
});

$(window).on('load hashchange',function(){
console.log('(on) load hashchange', location.href);
});

 

rex0220さん

サンプルソース頂き有難う御座います。

‘load hashchange’ でイベント動作することが確認できました!

こちらで実装を行います。

大変ご丁寧な対応有難う御座いました。