質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

592閲覧

スマホでアクセスした際にjavascriptからAjaxでPCサイトのHTMLを取得したい

mariko705

総合スコア6

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2018/06/20 06:55

皆様こんにちわ。

現在、javascriptでサイト内のトップページのHTML(一部)を取得するために以下のようなソースを記述しております。

javascript

1 $(function(){ 2 var $out = $('.出力箇所'); 3 //------------------ 4 // ajaxでトップページのHTMLを取得 5 //------------------ 6 $.ajax({ 7 type: 'GET', 8 url: '/', 9 dataType: 'html', 10 async: false, 11 success: function(data) { 12 //------------------ 13 // HTMLから必要箇所のみ抽出 14 //------------------ 15 var docVoiceBox = ''; 16 docVoiceBox = $(data).find('.目的箇所')[0].outerHTML; 17 // 出力 18 $out.append(docVoiceBox); 19 } 20 });

このサイトでは、PCとスマホは別ページを用意しており、スマホでアクセスした際はスマホサイトにリダイレクトされます。

今回取得した箇所は、「スマホ・PCどちらからでも、PCの目的箇所を抽出したい」のですが、スマホからこの処理を実行すると、スマホサイトのトップページ(リダイレクト後のページ)の内容が取得されてしまい、PCの情報が出てきません。
スマホサイトのディレクトリ(リダイレクト先)は/sp/という階層なので、ajax内のURLプロパティを

javascript

1url:'/sp/'

としたときと同じ内容になってしまっているんです。

PCにしか表示していない情報を抽出したいので、スマホ端末からでもPCのトップページのHTMLをajaxで取得する方法があれば、ご教授くださいm(__)m

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/06/20 07:00 編集

PC/スマホの判定およびリダイレクトの処理はどのPHPでも必ず通るのでしょうか。
m.ts10806

2018/06/20 06:59

Ajaxのときだけ通らないようにすればできそうかな、と思った次第です。
tkturbo

2018/06/20 07:19

「$(data).find('.目的箇所')[0].outerHTML」←これの実際値のサンプルはないですか?
kszk311

2018/06/20 08:10 編集

リダイレクトが、具体的にどのように行われているのかを教えて下さい。ユーザーエージェントがPCでも、「/?mode=pc」など特定の文字列が入っていたときにはPCにする処理を入れればいいような気がします。
mariko705

2018/06/21 11:09

リダイレクトの処理に関しては、ECプラットフォームの処理であるため、こちらでいじれないのです・・。makeshopというサービスですが、phpも書けません。なので、リダイレクト処理を変更せず、ページ側からのJavascriptでなんとか対応する必要がございます。
x_x

2018/06/22 07:09

Location:ヘッダで指定されているのでしょうが、そうなると偽装に成功しない限りPCの情報は取得できません。
guest

回答2

0

MakeShop は URL を /?disp_pc=1 にすればページをデスクトップ用に切り替えられますよ。

投稿2018/08/11 01:10

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

古い質問ですが少し前に似たような経験があったので、メモがてら書いておきます。

pcviewというMakeShop側で用意されているクッキーがあり、
これを設定することでPC版サイトが優先して表示されるようになっているようです。
なのでまずdocument.cookie = 'pcview=on; path=/';でクッキーを設定してからAJAXでDOMを取得し、
alwaysメソッド内でdocument.cookie = 'pcview=on; path=/; max-age=0';で削除してあげれば実現できます。

投稿2019/09/05 00:50

toromou

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問