vue 에 포 함 된 페이지 구현(iframe)
질문
이 글 은 vue-cli 위 에 세 워 진 것 입 니 다.물론 단독으로 써 도 됩 니 다.다음 글 은 cli 에 관 한 지식 과 관련 될 것 입 니 다.단독으로 쓴 것 은 무시 하 십시오.
최근 많은 젊은이 들 이 초 형 에 게 vue 에 포 함 된 iframe 에 대해 물 었 다.
머 뭇 거 리 며 본 존 은 최근 react 로 바 뀌 었 으 며,vue 에 관 한 문 제 는 나중에 csdn 에 블 로 그 를 발표 할 예정 이다.
쓸데없는 말 은 그만 하고 바로 본론 으로 들 어가 자.
본 존 은 vue 에 iframe 을 끼 워 넣 는 것 을 권장 하지 않 습 니 다.물론 읽 고 있 는 동료 들 과 같은 더러 운 수요 가 있 을 것 입 니 다.
설명:본 존 은 iframe 페이지 에 JQ 를 썼 습 니 다.VUE 와 큰 관련 이 없 기 때문에 dom 을 직접 작 동 했 습 니 다.만약 에 친구 가 iframe 페이지 에 있 고 싶 어도 괜 찮 습 니 다.본 존의 코드 copy copy copy copy 를 고 친 다음 에 고치 면 됩 니 다.
질문 1(go back)
예 를 들 어 iframe 페이지 에 많은 점프 가 있 습 니 다.iframe 페이지 의 일부 작업 이 완료 되 었 을 때 브 라 우 저의 후퇴 기능 을 클릭 하면 당 첨 을 축하합니다.iframe 페이지 를 되 돌 릴 수 없고 iframe 과 관련 이 없 는 vue 페이지 를 되 돌 릴 수 없습니다.브 라 우 저의 후퇴 를 계속 클릭 하면 iframe 이 연 결 된 몇 페이지 나 직접 404 또는 공백 을 반복 할 수 있 습 니 다.
해결 방법:H5 의 history 대상 을 사용 합 니 다.
code:
$(document).ready(function(e) {
var counter = 0;
if (window.history && window.history.pushState) {
$(window).on('popstate', function () {
window.history.pushState('forward', null, '#');
window.history.forward(1);
window.parent.location.hash='/newActivity';//
});
}
window.history.pushState('forward', null, '#'); // IE
window.history.forward(1);
});
소개:popstate:같은 문서 의 탐색 기록(즉 history 대상)이 변 할 때마다 popstate 이벤트 가 발생 합 니 다.
forward:다음 방문 페이지 로 이동 합 니 다.브 라 우 저의 전진 키 와 같 습 니 다.
다른 건 아무것도 아니 겠 지?다 들 알 아 볼 수 있 을 거 라 고 믿 어.사실은 copy copy copy 만 있 으 면 돼.
질문 2(iframe 의 요청);
부탁 에 대해 서 는 할 말 이 없 지만 물 어 보 는 사람 이 있 습 니 다.물 어 본 김 에 말씀 드 리 겠 습 니 다.
예 를 들 어 이벤트 상세 페이지 iframe 이 있 습 니 다.이벤트 목록 은 vue 층 입 니 다.이벤트 목록 의 특정한 점프 상세 정 보 를 클릭 하 십시오.이때 인터페이스,주소 표시 줄 파 라미 터 를 요청 합 니 다.이런 페이지 는 보통 iframe 페이지 에서 요청 한 인터페이스 에서 가장 중요 한 파 라미 터 는 바로 이벤트 ID 입 니 다.물론 귀사 에 기이 한 배경 이 있 거나 특정한 교육 기관 에서 교육 을 받 은 이른바 큰 소 를 제외 하지 않 습 니 다.이런 식 으로 미 루 면 매개 변 수 는 계속 가 져 옵 니 다.
code:
function PcCommon(){
this.baseUrl='https://xxxxxxx';
}
PcCommon.prototype={
GetQueryString: function(name) {
return decodeURIComponent((new RegExp('[?|&]'+name+'='+'([^&;]+?)(&|#|;|$)').exec(location.href)||[,""])[1].replace(/\+/g,'%20'))||null;
},//
ajaxPost:function(){
$.ajax({
url:this.baseUrl+url+signParam(),
type:'POST',
async:true,
data:JSON.stringify(data),
dataType:'json',
headers:{
"Authorization":getCookie('token'),
"Content-Type":"application/json;charset=UTF-8"
},
success:function(res){
if(typeof success == 'function'){
success(res)
}
}
})
},// ajax
goTop:function(id){
var num = $('.'+id).offset().top+125+'px';
$('html,body', window.parent.document).animate({scrollTop: num }, 500);
}// ,
}
이것 은 본 존 이 쓴 간단 한 base.js 가 바로 원생 의 대상 이다.기본 주소 경 로 를 쓸 때 이 요청 을 말 할 필요 가 있 습 니 다.
먼저 vue 를 포장 할 때 iframe 의 html 를 포장 하지 않 습 니 다.그래서 처음에 main.js 에 설 치 된 기본 주소 와 common 은 사용 할 수 없 었 기 때문에 base.js 는 기본 주소 경 로 를 만 들 었 습 니 다.물론 배 치 를 준비 할 때 기본 주소 경 로 를 바 꾸 는 것 을 기억 하 세 요.제안 은 두 개,하나의 주석 을 쓰 는 것 이 좋 습 니 다.하 나 는 열 어도 편리 하고 한눈 에 알 수 있 습 니 다.
다음은 호출,코드 올 리 기;
code:
var newHd=new PcCommon();
var actStage=newHd.GetQueryString('actStage');// iframe
var actId=newHd.GetQueryString('actId');// ID
newHd.baseUrl = 'http://192.168.0.13:7500/';// , OK
$('.confirm_simne_btn').on('click',function(){
var that=this;
newHd.ajaxPost(
'/activity/v1/invitation/claimPrize',
{
activityId:actId,
prizeLevel:id
},
function(res){
console.log(res)
// OK
}
)
})
간단 한 ajax 요청 입 니 다.정말 할 말 이 없 지만 방금 글 을 쓰 는 과정 에서 지식 이 생각 나 서 다음 글 을 계속 하 겠 습 니 다.질문 3(질문 2 에서 발생==>디 렉 터 리 에 대하 여)
npm run build 는 이 명령 이 무엇 을 하 는 지 잘 알 고 있 습 니 다.dist 파일 을 만 들 것 입 니 다.여기 서 저 는 다른 사람 을 비판 하지 않 고 제 방법 만 말 합 니 다.
예 를 들 어 이벤트 예 를 들 어 이벤트 목록 에 다양한 template 가 있 습 니 다.포장 을 망 설 이 며 iframe 파일 을 포장 하지 않 습 니 다.그래서 저 는 직접 dist 파일 에 넣 고 발표 할 때 dist 를 직접 포장 합 니 다.
직접 위의 그림:
간단하게 소개 하 겠 습 니 다.dist 는 더 이상 말 할 필요 가 없습니다.static 과 index.html 도 말 할 필요 가 없습니다.가장 중요 한 것 은 new Act 라 는 클립 입 니 다.이 클립 은 바로 당신들 이 말 하 는 활동 클립 입 니 다.그 안에 Public 와 view 가 있 고 Public 는 주로 공공 css,js,그리고 제3자 가방 을 넣 습 니 다.view 안 에는 각 활동 의 클립 이 있 습 니 다.예 를 들 어 duyuesheng 이라는 클립 은 당신 이 정상적으로 H5 를 쓰 는 것 과 마찬가지 로 그 안에 js,css 가 있 습 니 다.이런 것들 을 마음대로 발휘 하 세 요.
여기까지 소개 할 까요?
그리고 iframe 에서 vue 를 조작 하 는 방법,firame 에서 vue 가 지정 한 경로 로 넘 어 가 는 방법.............................................................
이 글 은 필요 한 사람들 에 게 보 여 주 며,좋아 하지 않 으 면 뿌리 지 마라!!여러분 에 게 참고 가 될 수 있 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.