Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Text 是否可以使用onclick等从另一个页面展开文本?_Text_Onclick_Collapse_Expand - Fatal编程技术网

Text 是否可以使用onclick等从另一个页面展开文本?

Text 是否可以使用onclick等从另一个页面展开文本?,text,onclick,collapse,expand,Text,Onclick,Collapse,Expand,我有头版和产品版。产品页面只有链接:当我单击产品一、产品二等时,信息文本会展开。从首页我有到产品页面的链接,我使用了书签选项,所以滚动条位于产品页面的正确位置 是否可以单击首页上的特定产品,并在产品页面打开时扩展打开的特定产品信息?如果这些是真正独立的页面,那么您不能通过单击事件来完成此操作,因为页面a上的JS不会继续在页面B上执行 但是,您可以将散列锚名称添加到首页上的链接(products.html#prod1,products.html#prod2,等等),然后在产品页上使用JS确定在首页

我有头版和产品版。产品页面只有链接:当我单击产品一、产品二等时,信息文本会展开。从首页我有到产品页面的链接,我使用了书签选项,所以滚动条位于产品页面的正确位置


是否可以单击首页上的特定产品,并在产品页面打开时扩展打开的特定产品信息?

如果这些是真正独立的页面,那么您不能通过单击事件来完成此操作,因为页面a上的JS不会继续在页面B上执行

但是,您可以将散列锚名称添加到首页上的链接(
products.html#prod1
products.html#prod2
,等等),然后在产品页上使用JS确定在首页上选择了哪个产品;这将为您提供足够的信息,以确定在加载产品页面时要扩展哪个产品

从最基本的角度来说,你可以这样做:

if(window.location.hash) {
    var prod_sel = window.location.hash;
    expand_item(prod_sel);
}

function expand_item(product) {
    if(is_a_valid_product(product)) {
        //expand product here
    }
}

您可以为此使用css伪类
:target

因此,在您的首页上,您可以链接到您的产品页面:

<a href="/products#product-1">Product 1</a>
您可以对此进行扩展,以便只有目标(匹配URL中从散列开始的所有内容的
id
)应用特定规则


可能值得注意的是IE8和之前的版本不支持这一点。您同样可以选择基于javascript的兼容性方法。

如果您只想控制哪个产品是可见的,这比我的解决方案更优雅;IIRC这不会让你做任何像动画扩展之类的事情——所以实际上,全面的答案将包括这两种方法。你可以用CSS做一些转换:但我认为你是对的——这两种技术的组合将用于IRL。
....
    <div class="product-wrapper" id="product-1">
        <h2>Some Title</h2>
        <img ... />
        <div class="content-wrapper">

        </div>
    </div>

    ... product 2
    ... product 3
....
.content-wrapper {
    display: none;
}

.product-wrapper:target .content-wrapper {
    display: block;
}