hopscotch.js を使用してインタラクティブ ツアーを作成しようとしています。ツアーが機能するために JavaScript ライブラリが必要とする標準的なデータ構造は次のとおりです。
// Define the tour!
var tour = {
id: "hello-hopscotch",
steps: [
{
title: "My Header",
content: "This is the header of my page.",
target: "header",
placement: "right"
},
{
title: "My content",
content: "Here is where I put my content.",
target: document.querySelector("#content p"),
placement: "bottom"
}
]
};
ツアーの手順を JavaScript ライブラリに直接入れることは完全にうまく機能しますが、理想的には、これらすべての詳細をデータベースに保持し、AJAX を使用してデータを hopscotch.js に渡すことができるようにしたいと考えています。(これは、ツアーを動的に作成しcontent
、コードをリリースせずに変更できるようにするためです)。
私が要素セレクターtarget
を使用しているときを除いて、すべてが正常に機能しています。document.querySelector()
各ツアー ステップの基本的な C# モデルは次のとおりです。
public class MockTourSteps
{
public string Title { get; set; }
public string Content { get; set; }
public string Target { get; set; }
public string Placement { get; set; }
}
文字列と同様Target
に、値を二重引用符で囲む必要があります。
これに関する問題は、JSON にシリアル化されると、Chrome 開発者ツールでページを表示すると、次のエラーが発生することです。
Syntax error, unrecognized expression: document.querySelector(".btn-primary")
ページに返された JSON データを調べると、mydocument.querySelector()
を二重引用符で囲んでいることが問題の原因であることがわかります。
via をtarget
指定するときはこれらの二重引用符を my から削除する必要がありますが、などの HTML タグに基づいて を指定するときは二重引用符を残す必要があります。target
document.querySelector()
target
header
これを達成する方法はありますか?