একটি iframe ক্রিয়া থেকে প্যারেন্ট উইন্ডো পুনর্নির্দেশ


312

আইফ্রেমে পিতা-মাতার উইন্ডোটি পুনর্নির্দেশের জন্য আমার কী জাভাস্ক্রিপ্ট ব্যবহার করতে হবে?

আমি তাদের হাইপারলিঙ্কে ক্লিক করতে চাই যা জাভাস্ক্রিপ্ট বা অন্য কোনও পদ্ধতি ব্যবহার করে প্যারেন্ট উইন্ডোটিকে নতুন URL এ পুনঃনির্দেশ করবে।


5
পিতা বা মাতা জানালা, নিজেই, একটি হতে পারে IFrameখুব। যেহেতু গৃহীত উত্তরগুলি শীর্ষ উইন্ডোটিকে সম্বোধন করে , তাই আমি আপনাকে আপনার প্রশ্নটি কিছুটা পরিবর্তন করার পরামর্শ দিই।
রন ক্লেইন

উত্তর:


521
window.top.location.href = "http://www.example.com"; 

আগেই বলা হয়েছে, পিতামাতাকে iframe পুনর্নির্দেশ করবে।


আমি মনে করি না এখানে একই উত্স নীতি প্রযোজ্য। এটি আপনার বোধগম্য হয় যে আপনার সাইটের অন্য কারও আইফ্রেমের বাইরে ভাঙতে সক্ষম হওয়া উচিত।
ব্রায়ান ম্যাকআলিফ

1
ক্রোম, @Parris jsfiddle এই ত্রুটির ছোঁড়ার: অনিরাপদ জাভাস্ক্রিপ্ট প্রয়াস URL টি 'দিয়ে ফ্রেমের জন্য গৌণ শুরু করার jsfiddle.net/ppkzS URL টি' দিয়ে ফ্রেম থেকে ' parrisstudios.com/tests/iframe_redirect.html '। শীর্ষ-স্তরের উইন্ডোর নেভিগেশন প্রচেষ্টা করার ফ্রেমটি স্যান্ডবক্সযুক্ত, তবে 'অনুমতি-শীর্ষ-নেভিগেশন' পতাকাটি সেট করা নেই।
বজরতে আউনে ওলসেন

1
@ বারজারটিউন ওলসেন আকর্ষণীয়, ক্রোম বা ওয়েবকিটের সাম্প্রতিক পরিবর্তন হতে পারে। এটি অবশ্যই আগে কাজ করছিল। কয়েক বছর কেটে গেছে :)। এছাড়াও একই একই উত্স নীতি প্রয়োগ করা উত্তরটি উত্তর ব্যবহার করত, যা পূর্বে উত্তরটি ভুল করেছিল, কিন্তু এখন এটি সঠিক করে তোলে এবং আমার মন্তব্যকে ভুল__- করে।
প্যারিস

4
@ বাজার্টেউন ওলসেন - আমি বিশ্বাস করি কারণ এটি জেএসফিডেলের আইফ্রেমেসগুলি ইচ্ছাকৃতভাবে স্যান্ডবক্সযুক্ত করা হয়েছে যাতে তারা কিছু বৈশিষ্ট্যগুলি স্পষ্টভাবে অস্বীকার করেছে (যেমন রিডাইরেক্ট করা ইত্যাদি) - এতে ঝুঁকি রয়েছে যে আপনি জেএস ফিডল থেকে দূরে নেভিগেট করতে জেএস ব্যবহার করবেন এবং আপনার কাজ হারাবেন। ..
phাফ - বেন ডুগইড

10
ত্রুটি এখানে সম্মুখীন হয় নামক অনুরোধকে জন্য একটি নতুন HTML5 এর বৈশিষ্ট্য কারণে হয়, " sandbox" - developer.mozilla.org/en-US/docs/Web/HTML/Element/iframesandbox অ্যাট্রিবিউট প্রতিরোধ জাভাস্ক্রিপ্ট একটি iframe মধ্যে ক্রিয়া গ্রহণ ভিত্তিক অনুমোদিত ক্রিয়াকলাপের প্রদত্ত শ্বেত তালিকাতে। allow-top-navigationসম্পত্তি ক্রিয়াগুলি পরিচ্ছন্ন তালিকা, যা কাজ করার জন্য এই কোড দেয় সক্ষম করতে পারেন মধ্যে অন্যতম। তাহলে sandboxঅ্যাট্রিবিউট abscent সব ক্রিয়া অনুমতি দেওয়া হয়। যদি এটি উপস্থিত থাকে এবং একটি খালি স্ট্রিং থাকে, সমস্ত ক্রিয়া অস্বীকার করা হবে।
মার্কাস হ্যারিসন

115

আমি এটি <a href="..." target="_top">link</a>কাজ করে


7
নির্বাচিত উত্তরটি সঠিক হলেও, আমি মনে করি এটি প্রশ্নের অভিপ্রায় জন্য একটি উত্তম উত্তর। এছাড়াও, এটি জেএস অক্ষম ব্যক্তিদের জন্য কাজ করবে।
মাইকেল - ক্লে শিরকি

আমি সম্মত এটি সেরা সমাধান তবে ওপি বিশেষত জাভাস্ক্রিপ্টের জন্য বলেছে। অন্যদিকে, ওপি নির্দিষ্ট করে দিয়েছে যে এটি একটি অ্যাঙ্কারের মাধ্যমে ট্রিগার হওয়া উচিত - আমি এমন দৃশ্য দেখতে পাচ্ছি না যেখানে কাঙ্ক্ষিত ফলাফল অর্জনের জন্য একজনকে অ্যাঙ্কর ট্যাগ থেকে জাভাস্ক্রিপ্ট ব্যবহার করতে বাধ্য করা হবে, এজন্য প্রশ্নটি বিভ্রান্তিকর is
নোকারিয়ার

2
তাই সহজ এবং মার্জিত। মোহন মত কাজ করে :)
যশ

54
window.top.location.href = "http://example.com";

window.top ফ্রেমের শ্রেণিবদ্ধের শীর্ষে পৃষ্ঠার উইন্ডো অবজেক্টকে বোঝায়।


9
উইন্ডো.টপ.লোকেশন.আরফ সম্পত্তি যদি ইফ্রামে থেকে আপডেট করা যায় না, এটি এক্সিকিউশনকে নিষিদ্ধ ঘোষণা করে। যখন আপনি লোকালহোস্টে পরীক্ষা করছেন
মুহাম্মদ উম্মার

4
@ উম্মার: আমি যুক্ত করব যে যখন পিতা-মাতার একজন ইফরামের একই ডোমেন, একই পোর্ট (একই উত্স নীতি) থাকে, তখন এটি সুরক্ষার লঙ্ঘন রোধ করার জন্য অ্যাক্সেসটিকে অস্বীকার করতে পারে
কোয়ান মাই

5
প্রমাণের জন্য @ উম্মার সত্য নয়, jsfiddle.net/ppkzS । আপনি উইন্ডো.টপ.লোকেশন.আরএফ পরিবর্তন করতে পারেন। আপনি শুধু এটি পড়তে পারবেন না। ক্রোমে কাজ করে।
প্যারিস

প্যারিসকে দুর্দান্ত জিসফিল, এটি আমার জন্য এটি ঠিক করে দিয়েছে :)
ম্যাক্স উইলিয়ামস

2
আমি সন্দেহ করি যে সন্দেহভাজনদের মধ্যে কেউ হয়তো ইফ্রিমের মধ্যে এই জাতীয় কিছু চেষ্টা করছিল: উইন্ডো.টপ.লোকেশনডায়রিফ = উইন্ডো.টপ.লোকেশন . href ;
mjj1409


15

target="_parent"আমার জন্য দুর্দান্ত কাজ সহজ এবং ঝামেলা মুক্ত!


এগুলি দুর্দান্ত কাজ করে বলে মনে হচ্ছে। জাভা স্ক্রিপ্টের চেয়ে এই পদ্ধতিটি ব্যবহার করার জন্য কি কোনও ডাউনসাইড রয়েছে?
উড়ান L123

আমি জানি না। কিছু জানতে পারলে শেয়ার করুন।
rDroid 21'15

7

@ এমআইপি সঠিক, তবে সাফারির নতুন সংস্করণগুলির সাথে আপনার আইফ্রেমে পুনঃনির্দেশ অ্যাক্সেস দিতে আপনার স্যান্ডবক্স অ্যাট্রিবিউট (এইচটিএমএল 5) যুক্ত করতে হবে। কয়েকটি নির্দিষ্ট মান রয়েছে যা তাদের মধ্যে একটি স্থানের সাথে যুক্ত করা যেতে পারে।

রেফারেন্স (আপনার স্ক্রোল করতে হবে): https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe

উদা:

<iframe sandbox="allow-top-navigation" src="http://google.com/"></iframe>

নোট করুন যে sandboxবৈশিষ্ট্যটি সামগ্রীতে লিখিত সামগ্রীর জন্য অতিরিক্ত বিধিনিষেধের সেটকে সক্ষম করে <iframe>sandboxসম্পত্তির মান নির্দিষ্ট সীমাবদ্ধতাগুলি সরিয়ে দেয়। সুতরাং এই বৈশিষ্ট্যটি ব্যবহার করে দেখুন। w3schools.com/tags/att_iframe_sandbox.asp
গীতারিক


3

ব্যবহারকারীকে কিছু না করে আপনি যদি অন্য ডোমেনে পুনর্নির্দেশ করতে চান তবে আপনি সম্পত্তিটির সাথে একটি লিঙ্ক ব্যবহার করতে পারেন:

target="_parent"

যেমনটি আগে বলা হয়েছিল এবং তারপরে ব্যবহার করুন:

document.getElementById('link').click();

এটি স্বয়ংক্রিয়ভাবে পুনঃনির্দেশিত করতে।

উদাহরণ:

<!DOCTYPE HTML>

<html>

<head>

</head>

<body>

<a id="link" target="_parent" href="outsideDomain.html"></a>

<script type="text/javascript">
    document.getElementById('link').click();
</script>

</body>

</html>

দ্রষ্টব্য: আপনি লিঙ্কটি ঘোষণার পরে জাভাস্ক্রিপ্ট ক্লিক () কমান্ড অবশ্যই আসতে হবে।


1

কোনও আইফ্রেমে থেকে পুনর্নির্দেশ করা সম্ভব, তবে পিতামাতার কাছ থেকে তথ্য না পাওয়া।




-2

একটি iframe ক্রিয়া থেকে প্যারেন্ট উইন্ডোটিকে পুনর্নির্দেশ করতে আমাদের উইন্ডো.টপ.লোকেশন.href ব্যবহার করতে হবে।

ডেমো ইউআরএল :


1
আমরা কে? :) আপনি দয়া করে উত্তর থেকে url থেকে প্রয়োজনীয় অংশগুলি লিখতে পারেন? ইউআরএল / লিঙ্কগুলি পরিবর্তন বা মুছে ফেলা হতে পারে।
হ্যাঁসটাইমসাইমনেমে

-8

একই পিতামাতার আইফ্রেমে পিতা বা মাতা উইন্ডোতে পুনঃনির্দেশ:

window.parent.document.getElementById("content").src = "content.aspx?id=12";
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.