Vivaldi において javascript の prompt で第二引数の改行コードが無視されるのは仕様ですか?
-
Chromium および Edge では prompt の第一・第二引数いずれも改行コードが正しく反映されますが、Vivaldi では第一引数内でのみ有効となっています。他のメジャーブラウザと挙動を一致させることはセキュリティの問題などで難しいのでしょうか。
コードの例
javascript:prompt('ページタイトル + URL',document.title + '\n' + location.href)();
上記のコードをブックマークバーに登録して vivaldi.com で実行しました。
Vivaldi での実行結果(テキストボックスの内容をコピー&ペースト)
Vivaldi Browser | Powerful, Personal and Private web browserhttps://vivaldi.com/
Chromium および Edge での実行結果(期待される挙動)
Vivaldi Browser | Powerful, Personal and Private web browser https://vivaldi.com/
改行コードの種類(CR+LF,LF,CR)を変更しても同様の結果になりました。
利用環境
Vivaldi 6.1.3035.302 (Stable channel) (64-bit)
Vivaldi 6.2.3105.4 (公式ビルド) (64-bit)
Chromium 118.0.5961.0(Developer Build) (64 ビット)
Microsoft Edge 115.0.1901.203 (公式ビルド) (64 ビット)
OS Windows 10 Version 22H2 (Build 19045.3324)
Vivaldi は新規インストールして確認しました。Chromium(Developer Build) と Edge は最新であることを確認しています。コード引用元(一部改変)
ページタイトルとURLを取得できるブックマークレットの例|JavaScript・promptメソッド
https://blog-and-destroy.com/2430#chapter-2こういった仕様かどうか不明な点について、どのカテゴリーに投稿すればよいか分からず、、、ここで失礼します。
可能であれば Vivaldi Team の方にお答えいただきたいです。
以上、よろしくお願いします。 -
投稿ありがとうございます
担当と確認しましたところ、本件は Chromium 側の不具合であるようです。プロンプトは、通常1行のテキストのみを受け入れることができるため、\ n は無効という判断になるはずです。
本来であれば欠陥のある文字(上記改行を含む)を無視すべきであるところを、
Chromium(Chrome と Edge)は、スペースを使用するだろうと想定する仕様になっているとのことでした。参考になれば。
-
Vivaldi は javascript エンジンを独自に実装していると聞いたことがあります(?)
そのために回避できていた不具合だったということですね。
返信ありがとうございました️