レスポンシブ デザイン (メディア クエリを使用) の Web ベース トレーニング (WBT) レッスンを受けています。デフォルトでは、この WBT は、アクセシビリティの問題などのためにフレームを使用しません。
ただし、SCORM LMS からデプロイする場合は、フレームセットとして機能するファイルを SCORM 通信に使用します。このような:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Title of Course Here</title>
<script src="../common/scripts/scorm.js"></script>
<style>
html, body {margin:0; overflow:hidden; padding:0;}
html, body, iframe {border:0; height:100%; width:100%;}
</style>
</head>
<body>
<iframe src="index.htm" frameborder="0">
iframes are not supported by your browser.
You can access the pages directly <a href="index.htm">here</a>.
</iframe>
</body>
</html>
このページは SCORM API に接続し、onunload
SCORM コミットおよび終了コマンドを送信するための が含まれています。
問題
このページをモバイル ブラウザーで表示すると、(コンテンツ内の) CSS メディア クエリは無視され、iframe 自体のサイズも無視されます。これは明らかに悪いことです。なぜなら、メディア クエリのすべての魔法は今ではほとんど役に立たないからです。
可能な解決策
これに対する2つの可能な解決策(私が見ることができる)は次のとおりです。
- iframe 内で動作するメディア クエリを取得します。
- フレームセットなしで SCORM 通信を有効にします。
残念ながら、これらの解決策はどちらも可能/実行可能ではないようです。フレームセットなしでSCORMへの通信を維持する方法についてのアイデアはありますか? または、iframe 内からメディア クエリを動作させる方法を教えてください。
編集1:
これを詳しく調べれば調べるほど、解決策 2 が望ましいと思います。モバイルで iframe を扱うのは、あらゆる種類の苦痛のように思えます。コンテンツフレームでrespond.js(常に実行するようにハッキング)を使用しましたが、これは期待どおりに機能しましたが、スクロールで問題が発生しました.
編集2:
第 3 の解決策は、LMS と WBT の間に中間ウィンドウを提供することです。このウィンドウは、「このウィンドウを閉じないでください」という旨のメッセージとともに、SCORM API への参照を保持できます。ユーザー エクスペリエンスの観点からはそれほどエレガントではありませんが、3 つのソリューションの中で最もハッキリしていないように見えます。